我的问题可能是基本的,但我没有在stackoverflow和其他来源找到答案。因此,我把它放在这里 示例数据集
yta<-rep(c(200, 201), each=10)
ala<-data.frame(yta)
ala$nr<-0
现在我想循环遍历此数据集,并将序列形式1放入i
新变量nr
到unique(ala$yta)
。它只是我数据集中的示例,我有更多yta
行数不均匀。
答案 0 :(得分:0)
预期输出不是很清楚,但也许这就是你想要的:
transform(ala,nr=ave(yta,yta,FUN=seq))
yta nr
1 200 1
2 200 2
3 200 3
4 200 4
5 200 5
6 200 6
7 200 7
8 200 8
9 200 9
10 200 10
11 201 1
12 201 2
13 201 3
14 201 4
15 201 5
16 201 6
17 201 7
18 201 8
19 201 9
20 201 10
答案 1 :(得分:0)
使用dplyr
执行此操作的另一种方法:
library(dplyr)
ala %>%
group_by(yta) %>%
mutate(nr=1:n())
答案 2 :(得分:0)
使用data.table
(大数据集会更快)
library(data.table)
DT <- setDT(ala)[,nr:=seq_len(.N),by=yta]
DT
# yta nr
#1: 200 1
#2: 200 2
#3: 200 3
#4: 200 4
#5: 200 5
#6: 200 6
#7: 200 7
#8: 200 8
#9: 200 9
#10: 200 10
#11: 201 1
#12: 201 2
#13: 201 3
#14: 201 4
#15: 201 5
#16: 201 6
#17: 201 7
#18: 201 8
#19: 201 9
#20: 201 10
yta<-rep(c(200, 201), each=10)
ala<-data.frame(yta)