是否可能有一个函数可以考虑在关节的“ by”参数中包含一个范围?
示例:
#Table 1
A B C D
1 a 1 10 15
2 a 11 1000 12.5
3 b 1 5 2
4 b 6 1000 1
#Table 2
A B
1 a 53
2 b 3
联合表:
A B 1.D
1 a 53 12.5
2 b 3 2
答案 0 :(得分:1)
您似乎想基于与A和B上的表1的滚动连接来更新表2
library(data.table)
setDT(tb1)
setDT(tb2)
tb2[tb1, on = .(A, B), roll = -Inf, D := i.D]
这将更新tb2
,现在我们有了
tb2
# A B D
# 1: a 53 12.5
# 2: b 3 2.0
使用的数据:
tb1 <- fread('
A B C D
a 1 10 15
a 11 1000 12.5
b 1 5 2
b 6 1000 1
')
tb2 <- fread('
A B
a 53
b 3
')