使用另一个数据表来调整主数据表r中的列

时间:2018-05-07 21:36:30

标签: r matrix data.table logical-operators

假设我有两个数据表,并且我想使用第二个数据表,其中包含一些具有一些列值的行,以调整第一个数据表。

具体来说,我想使用d2来选择其变量小于或等于值的行。

 d1 = data.table('d'=1,'v1'=1:10, 'v2'=1:10)
 d2 = data.table('v1'=5, 'v2'=5)

所以我希望输出为

   d v1 v2
1: 1  1  1
2: 1  2  2
3: 1  3  3
4: 1  4  4
5: 1  5  5

但我希望这样做而不引用具体的名称,除非它以非常一般的方式,例如names(d2)

1 个答案:

答案 0 :(得分:6)

你可以通过一些文本操作和连接来实现:

async/await

它有效,因为d2[d1, on=sprintf("%1$s>=%1$s", names(d2)), nomatch=0] # v1 v2 d #1: 1 1 1 #2: 2 2 1 #3: 3 3 1 #4: 4 4 1 #5: 5 5 1 扩展为:

sprintf