【发布时间】:2017-09-14 16:16:17
【问题描述】:
我有一个如下所示的 data.frame(或 data.table)
Col1 Col2 Col3
1 A 23
1 B 26
2 A 20
2 C 10
我在Col1 上分组了这些数据。我想从每一行获取一定范围内的行数(比如 5;在 Col3 上计算的差异)。
所以我应该得到这样的结果
Col1 Col2 Col3 Col4
1 A 23 1
1 B 26 1
2 A 20 0
2 C 10 0
在这种情况下,基数是每行的 Col3。因此,例如 - row1, Col3 在组中有一行,距离 row1, Col3 5 以内。同样,在第二组中,没有任何行在 5 距离内。
如何在 data.table 中做到这一点?
【问题讨论】:
-
在基于什么的范围内?我们比较的是什么值,基值是什么?
-
第 2 行和第 3 行不在 5 的范围内,所以我希望第 3 行和第 4 行的值为零而不是 1?
-
@BigDataScientist OP 说按 Col1 分组所以我认为没关系,但我不明白为什么在第 1 行 Col4 是 2 但在第 2 行 Col4 是 1,如果我正确理解 OP 他们应该两者是 2
-
我的错。发帖时我没有意识到这个错误。我刚刚更正了。
-
您能否删除反对票。我已经编辑了问题。
标签: r data.table