If you can be sure that the non-NAs are contiguous, then the following should work:
sapply(d, function(x) max(which(!is.na(x)))) Andy > From: Pierre Lapointe > > Hello, > > > > In a dataframe, I want the index if the last non-NA data. Example: > > > > d<-data.frame(matrix(c(1,3,4,2,7,8,1,NA,2),3,3,byrow=TRUE)) > > > > gives: > > > d > > X1 X2 X3 > > 1 1 3 4 > > 2 2 7 8 > > 3 1 NA 2 > > > > I want a vector that gives me 3 2 3 > > > > I know about tail and which, but I don't know how not to > consider the NA > > > > e.g.: last<-tail(d,1,na.rm=TRUE) still gives me a NA > > > last > > X1 X2 X3 > > 3 1 NA 2 > > > [[alternative HTML version deleted]] > > ______________________________________________ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.html > > > ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
