我找不到这个简单问题的解决方案。 我有一个这样的数据框:
df = data.table(X1 = 1:12, X2 = LETTERS[1:12])
我想创建一个名为 group
的新变量,我想将连续的行按 3 分组。例如:第 1-3 行将是 group0,第 4-6 行将是 group2等等。
预期结果:
X1 X2 group
1: 1 A 0
2: 2 B 0
3: 3 C 0
4: 4 D 1
5: 5 E 1
6: 6 F 1
7: 7 G 2
8: 8 H 2
9: 9 I 2
10: 10 J 3
11: 11 K 3
12: 12 L 3
最佳答案
Mod operator %/%
是一种简单的方法来做这样的事情:
df[, group := (1:.N - 1) %/% 3]
df
# X1 X2 group
# 1: 1 A 0
# 2: 2 B 0
# 3: 3 C 0
# 4: 4 D 1
# 5: 5 E 1
# 6: 6 F 1
# 7: 7 G 2
# 8: 8 H 2
# 9: 9 I 2
#10: 10 J 3
#11: 11 K 3
#12: 12 L 3
关于r - 在 R 中对数据表中的连续行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857580/