小编Lam*_*ing的帖子

仅在使用data.table:=连接两个表时才需要第一个实例

我有一个policyData,这是我非常庞大的数据集(数百万行),我希望用映射表(数万行)添加一些信息.

样品:

policyData <- data.table(plan=c("c","b","b","d"),v=c(8,7,5,6),foo=c(4,2,8,3))
mapping <- data.table(plan=c("b","b","a","a","c","c"),a=c(1,2,4,5,7,8),b=c(9,8,6,5,3,2))
Run Code Online (Sandbox Code Playgroud)

的policyData:

   plan v foo
1:    c 8   4
2:    b 7   2
3:    b 5   8
4:    d 6   3
Run Code Online (Sandbox Code Playgroud)

制图:

   plan a b
1:    b 1 9
2:    b 2 8
3:    a 4 6
4:    a 5 5
5:    c 7 3
6:    c 8 2
Run Code Online (Sandbox Code Playgroud)

问题是映射有多个实例,我希望只获得第一个匹配.我需要使用内存高效的方式加入这两个:=.

所需的输出是:

   plan v foo  a  b
1:    c 8   4  7  3
2:    b 7   2  1  9
3:    b 5 …
Run Code Online (Sandbox Code Playgroud)

merge join r data.table

4
推荐指数
1
解决办法
58
查看次数

标签 统计

data.table ×1

join ×1

merge ×1

r ×1