[R] Replace values in a vector

Farida Mostajabi f0most01 at louisville.edu
Thu Dec 3 17:54:18 CET 2009


WOW! It worked. Thank you!

>>> Gabor Grothendieck <ggrothendieck at gmail.com> 12/03/09 11:46 AM >>>
na.locf in the zoo package takes the last occurrence and carries it forward
into NAs so replace your zeros with NAs and then apply na.locf like this:

   library(zoo)
   na.locf(replace(x, x==0, NA))


On Thu, Dec 3, 2009 at 11:41 AM, Farida Mostajabi
<f0most01 at louisville.edu>wrote:

> Hi all,
>
> I have a vector like this:
>
> x<- c(0.7, 0.1, 0, 0.2, 0.2, 0, 0, 0 , 0, 0.4, 0, 0.8, 1.8)
>
> I would like  to replace the zero values with the first previous non zero
> value.
>
> my returning vector should look like this:
>
> y<-c( 0.7, 0.1, 0.1,0.2,0.2,0.2,0.2,0.2, 0.4, 0.4, 0.8, 1.8)
>
> How can I do this in R without using for loop?
>
> Thank you
>
> ______________________________________________
> 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.
>




More information about the R-help mailing list