Hi Richard, I would slightly modify the code for cases like: a3 <- c(NA,1,3,NA,NA)
fun1 <- function(x) max(diff(which(!is.na(c(0,x,length(x)))))-1) fun2 <- function(x) {rl <- rle(is.na(x)); max(with(rl,lengths[values]))} all.equal(fun1(a3),fun2(a3)) #[1] TRUE A.K. On Wednesday, January 8, 2014 3:02 PM, Richard Kwock <richardkw...@gmail.com> wrote: Hey Arun, That's a good point. You'd first need a non-NA element in the first element (such as a 0) in order for that to work, which you can get around by adding a 0 to the first element of the vector. a1 <- c(NA,NA,NA,NA,1,NA,NA,2) a2 <- c(1,NA,NA,NA,NA,1,NA,NA,2) diff(which(!is.na(c(0,a1))))-1 # [1] 4 2 diff(which(!is.na(c(0,a2))))-1 # [1] 0 4 2 Richard On Wed, Jan 8, 2014 at 11:43 AM, arun <smartpink...@yahoo.com> wrote: > Hi, > If missing values are in the beginning > > a <- c(NA,NA,NA,NA,1,NA,NA,2) > diff(which(!is.na(a)))-1 > #[1] 2 > > > > rl <- rle(is.na(a)) > max(rl$lengths[rl$values]) > #[1] 4 > > A.K. > > > > > On Wednesday, January 8, 2014 12:56 PM, Richard Kwock > <richardkw...@gmail.com> wrote: > Another way: > > a = c(1,NA,NA,4,3,NA,NA,NA,NA,5) > > # find position of the non-NAs in the vector > pos = which(!is.na(a)) > > # this calculates the length by taking the differences between the > non-NA positions. > diff(pos)-1 > > #get the max > max(diff(pos)-1) > > Richard > > > On Tue, Jan 7, 2014 at 7:36 PM, arun <smartpink...@yahoo.com> wrote: >> Hi, >> Try: >> rl <- rle(is.na(a)) >> max(rl$lengths[rl$values]) >> #[1] 3 >> >> >> A.K. >> >> >> Hi, >> >> I'd like to detect whether a vector contains a sequence of NA values of a >> certain length. So, for example, if I have a vector a = >> c(1,NA,NA,4,NA,NA,NA,5); how can I find what the longest sequence of NAs is >> (in this case 3)? >> >> Note that this is different from simply summing the number of NA values in >> the vector (which would be 5 in this case)... >> >> Thanks for your help ! >> >> ______________________________________________ >> 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. > ______________________________________________ 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.