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" [kri...@ymail.com]
Date: 02/05/2014 10:20 PM
To: "ce" <zadi...@excite.com>
CC: "r-help" <r-help@r-project.org>
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 <zadi...@excite.com> 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
>
> ______________________________________________
> R-help@r-project.org 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

______________________________________________
R-help@r-project.org 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.

Reply via email to