[R] Vector grouping challenge
jim holtman
jholtman at gmail.com
Wed Oct 28 13:11:29 CET 2009
Is this what you want:
> testVector <- c(12,32,NA,NA,56,NA,78,65,87,NA,NA,NA,90)
> # get the breaks at the NAs
> xb <- cumsum(!is.na(testVector))
> split(seq(length(testVector)), xb)
$`1`
[1] 1
$`2`
[1] 2 3 4
$`3`
[1] 5 6
$`4`
[1] 7
$`5`
[1] 8
$`6`
[1] 9 10 11 12
$`7`
[1] 13
On Wed, Oct 28, 2009 at 7:57 AM, Johannes Graumann
<johannes_graumann at web.de> wrote:
> Dear all,
>
> Is there an efficient way to get this list
>> testList <- list(c(1),c(2,3,4),c(5,6),c(7),c(8),c(9,10,11,12),c(13))
>
> from this vector
>> testVector <- c(12,32,NA,NA,56,NA,78,65,87,NA,NA,NA,90)
> ?
>
> Basically the vector should be grouped, such that non-NA and all following
> NAs end up in one group.
>
> Thanks for any hint,
>
> Joh
>
> ______________________________________________
> 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
More information about the R-help
mailing list