x <- rle(id)
cumsum(x$lengths) - (x$lengths - 1)
cumsum(x$lengths)
Alan
On Tue, May 25, 2010 at 10:00 PM, Gabor Grothendieck
wrote:
> This assumes that for a particular id they all occur together in a run:
>
>> cbind(start = which(!duplicated(id)), end = which(!duplicated(id, fromLast =
>> TRU
This assumes that for a particular id they all occur together in a run:
> cbind(start = which(!duplicated(id)), end = which(!duplicated(id, fromLast =
> TRUE)))
start end
[1,] 1 1
[2,] 2 3
[3,] 4 6
[4,] 7 7
[5,] 8 9
On Wed, May 26, 2010 at 12:14 AM, Robin Jeff
Awesome! Thanks:)
On Tue, May 25, 2010 at 9:40 PM, Erik Iverson wrote:
> Robin Jeffries wrote:
>
>> Hallo!
>>
>> I have a vector of ID's like so,
>> id <- c(1,2,2,3,3,3,4,5,5)
>>
>> I would like to create a [start,stop] pair of vectors that index the first
>> and last observation per ID.
>>
>>
Robin Jeffries wrote:
Hallo!
I have a vector of ID's like so,
id <- c(1,2,2,3,3,3,4,5,5)
I would like to create a [start,stop] pair of vectors that index the first
and last observation per ID.
For the ID list above, it would look like
1 1
2 3
4 6
7 7
8 9
which(!duplicated(id))
[1] 1 2 4 7 8
roject.org] On Behalf Of Robin Jeffries
> Sent: Wednesday, 26 May 2010 4:15 p.m.
> To: r-help@r-project.org
> Subject: [R] Counting indexes
>
> Hallo!
>
> I have a vector of ID's like so,
> id <- c(1,2,2,3,3,3,4,5,5)
>
> I would like to create a [start,sto
Hallo!
I have a vector of ID's like so,
id <- c(1,2,2,3,3,3,4,5,5)
I would like to create a [start,stop] pair of vectors that index the first
and last observation per ID.
For the ID list above, it would look like
1 1
2 3
4 6
7 7
8 9
I haven't worked with indexes/data manipulation much in R, so
6 matches
Mail list logo