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@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@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.
>

	[[alternative HTML version deleted]]


