r - 在 R 中对数据表中的连续行进行分组

标签 r data.table

我找不到这个简单问题的解决方案。 我有一个这样的数据框:

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/

相关文章:

r - 连接意味着在箱线图上用一条线

R中的正则表达式,在替换中重用匹配的字符串

R:ggplot 中特定条形之间的间隙

R data.table fread 使用没有标题的命名 colClasses(例如没有 col.names?)

r - 按组用序列填充 NA 值

r - 如何从逐步回归中提取公式?

r - 根据用户输入选择fillColor

r - 查找列总和低于R中给定值的行

r - 按组在每个单元格中存储一个向量

r - 为什么plyr这么慢?