[R] How to detect a sequence of NA values?
arun
smartpink111 at yahoo.com
Wed Jan 8 20:43:15 CET 2014
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 <richardkwock at 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 <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