[R] How to detect a sequence of NA values?

Richard Kwock richardkwock at gmail.com
Wed Jan 8 18:55:49 CET 2014


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 <smartpink111 at 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 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