【发布时间】:2012-02-18 08:06:02
【问题描述】:
假设我们有以下数据库:
ID Shoot hit
1 10 2
1 9 3
1 8 1
2 10 8
2 8 8
2 11 10
2 7 2
3 9 2
4 6 6
4 6 5
.
.
并且我希望在每个组中分配数字,在这种情况下每个 ID,例如:
ID Shoot hit number.in.group
1 10 2 1
1 9 3 2
1 8 1 3
2 10 8 1
2 8 8 2
2 11 10 3
2 7 2 4
3 9 2 1
4 6 6 1
4 6 5 2
.
.
我可以使用循环轻松完成。像这样的东西会起作用:
df$number.in.group = rep(1,nrow(df))
for(i in 2:nrow(df))
if(df$ID[i]==df$ID[i-1]){
df$number.in.group[i] = df$number.in.group[i-1] + 1 }
我的问题是,除了使用循环之外,还有其他功能或更优雅的方法吗?
【问题讨论】:
-
在将问题标记为重复问题时,我们通常不会担心日期。另一个问题有更多、更高质量的答案。
标签: r