在R循环中重复序列

时间:2014-10-07 06:35:47

标签: r loops

我的问题可能是基本的,但我没有在stackoverflow和其他来源找到答案。因此,我把它放在这里 示例数据集

yta<-rep(c(200, 201), each=10)
ala<-data.frame(yta)
ala$nr<-0

现在我想循环遍历此数据集,并将序列形式1放入i新变量nrunique(ala$yta)。它只是我数据集中的示例,我有更多yta行数不均匀。

3 个答案:

答案 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)