对于R中的data.table(或data.frame),我希望找到所有包含“值”列中的值的行,这些行与具有相同键的行中的另一个值的给定距离“距离”。因此,鉴于以下情况:
distance <- 22
key value
A 1
B 1
C 1
D 1
A 4
B 4
A 23
B 23
B 26
B 26
C 30
我想用相同的键存在多少行的计数来注释原始表,以及从它的 +22 的值:
key value count
A 1 1
B 1 1
C 1 0
D 1 0
A 4 0
B 4 2
A 23 0
B 23 0
B 26 0
B 26 0
C 30 0
我真的不知道从哪里开始使用这种在 R 中操作数据的自引用方法。我最初的尝试涉及创建第二个表并尝试与之匹配,但这似乎是一种奇怪且糟糕的方法。
注意:我正在使用该data.table
包,但我很乐意在这种情况下使用 data.frame 工作,如果这样可以让事情变得更容易。
可重现:
require(data.table)
source <- data.table(data.frame(key=c("A","B","C","D","A","B","A","B","B","B", "C"),value=c(1,1,1,1,4,4,23,23,26,26,30)))
result <- data.table(data.frame(key=c("A","B","C","D","A","B","A","B","B","B","C"),value=c(1,1,1,1,4,4,23,23,26,26,30),count=c(1,1,0,0,0,2,0,0,0,0,0)))