[R] replacing zeros with above/below numbers ?
ce
zadig_1 at excite.com
Thu Feb 6 05:02:44 CET 2014
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" [kridox at ymail.com]
Date: 02/05/2014 10:20 PM
To: "ce" <zadig_1 at excite.com>
CC: "r-help" <r-help at 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 <zadig_1 at 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 at 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
More information about the R-help
mailing list