In fact I don't want to replace with average of whole series, just before and
after values something like this :
for (i in seq(from=2,to=nrow(a)-1,by=1))
{
if ( a[i] == 0 ) a[i] = ( a[i+1] + a[i-1] ) / 2
}
but I can't handle gracefully repeated zeros or first and last values.
Jeff proposed na.approx function , I didn't know it, looks promising , I will
look into it .
ce
-----Original Message-----
From: "Pascal Oettli" [[email protected]]
Date: 02/05/2014 10:20 PM
To: "ce" <[email protected]>
CC: "r-help" <[email protected]>
Subject: Re: [R] replacing zeros with above/below numbers ?
Hello,
If you mean replacing 0 by the average of non-zero values, I guess one way is:
> a[a==0] <- mean(a[a!=0])
Maybe some senior user might correct it.
Regards,
Pascal
On 6 February 2014 12:05, ce <[email protected]> wrote:
>
> Dear all,
>
> My data is :
>
> a <-
> c(0.9721,0.9722,0.9730,0.9723,0.0,0.0,0.0,0.9706,0.9698,0.0,0.9710,0.9699)
>
> I want to replace zeros with average of before and after values of them.
> But sometimes there is one zero sometimes more than one. What is the most
> elegant way to do this ?
> Thanks a lot
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
--
Pascal Oettli
Project Scientist
JAMSTEC
Yokohama, Japan
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.