[R] Create sequential vector for values in another column
PIKAL Petr
petr.pikal at precheza.cz
Fri Oct 11 15:49:24 CEST 2013
Hi
I named your data test
test$x<-1
test$x<-unlist(lapply(split(test$x, test$id.name), cumsum))
> test
id.name x
1 123.45 1
2 123.45 2
3 123.45 3
4 123.45 4
5 234.56 1
6 234.56 2
7 234.56 3
8 234.56 4
9 234.56 5
10 234.56 6
11 234.56 7
12 345.67 1
13 345.67 2
14 345.67 3
15 456.78 1
16 456.78 2
17 456.78 3
18 456.78 4
19 456.78 5
20 456.78 6
21 456.78 7
22 456.78 8
23 456.78 9
>
Two comments:
This works only when your data are sorted
Beware of FAQ 7.31
Regards
Petr
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Steven Ranney
> Sent: Friday, October 11, 2013 3:26 PM
> To: r-help at r-project.org
> Subject: [R] Create sequential vector for values in another column
>
> Hello all -
>
> I have an example column in a dataFrame
>
> id.name
> 123.45
> 123.45
> 123.45
> 123.45
> 234.56
> 234.56
> 234.56
> 234.56
> 234.56
> 234.56
> 234.56
> 345.67
> 345.67
> 345.67
> 456.78
> 456.78
> 456.78
> 456.78
> 456.78
> 456.78
> 456.78
> 456.78
> 456.78
> ...
> [truncated]
>
> And I'd like to create a second vector of sequential values (i.e., 1:N)
> for each unique id.name value. In other words, I need
>
> id.name x
> 123.45 1
> 123.45 2
> 123.45 3
> 123.45 4
> 234.56 1
> 234.56 2
> 234.56 3
> 234.56 4
> 234.56 5
> 234.56 6
> 234.56 7
> 345.67 1
> 345.67 2
> 345.67 3
> 456.78 1
> 456.78 2
> 456.78 3
> 456.78 4
> 456.78 5
> 456.78 6
> 456.78 7
> 456.78 8
> 456.78 9
>
> The number of unique id.name values is different; for some values,
> nrow() may be 42 and for others it may be 36, etc.
>
> The only way I could think of to do this is with two nested for loops.
> I tried it but because this data set is so large (nrow = 112,679 with
> 2,161 unique values of id.name), it took several hours to run.
>
> Is there an easier way to create this vector? I'd appreciate your
> thoughts.
>
> Thanks -
>
> SR
> Steven H. Ranney
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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