[R] find the "next non-NA" value within each row of a data-frame
Peter Ehlers
ehlers at ucalgary.ca
Mon Apr 5 19:46:35 CEST 2010
If I understand correctly what you want (according to your loop),
you could use the na.locf function in pkg:zoo.
library(zoo)
mat <- t(apply(mydata, 1, na.locf, fromLast=TRUE, na.rm=FALSE))
dat <- as.data.frame(mat) ## since apply returns a matrix
-Peter Ehlers
On 2010-04-05 10:52, Anna Stevenson wrote:
> #I wish to find the "next non-NA" value within each row of a data-frame.
> #e.g. I have a data frame mydata. Rows 1, 2& 3 have soem NA values.
>
> mydata<- data.frame(matrix(seq(20*6), 20, 6))
> mydata[1,3:5]<- NA
> mydata[2,2:3]<- NA
> mydata[2,5]<- NA
> mydata[3,6]<- NA
> mydata[1:3,]
>
> #this loop accomplishes the task; I am tryign toi learn a "better" way
>
> for(i in (ncol(mydata)-1):1 ){
> mydata[,i]<- ifelse(is.na(mydata[,i])==TRUE,mydata[,i+1],mydata[,i])
> }
>
> mydata[1:3,]
> #Thank you. I appreciate the help.
>
>
>
>
> [[alternative HTML version deleted]]
>
>
>
>
> ______________________________________________
> 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.
--
Peter Ehlers
University of Calgary
More information about the R-help
mailing list