【发布时间】:2014-04-29 23:16:00
【问题描述】:
我有以下情况。如下所示的data.table
x = data.table(
id1 = c('a','b','c'),
id2 = c('x','y','x'),
val = c(0.2,0.3,0.5))
我还有另外两个数据表,它们给出了 id1 和 id2 中的值之间的映射,如下所示
id1.dt = data.table(
id1 = c('a','a','a','b','b','c'),
fid = c('1232','3224','3434','234','231','332')
)
和
id2.dt = data.table(
id2 = c('x','x','y','y'),
fid = c('334','443','344','24')
)
我想做的是通过保留values 列来扩展上述data.table x,这样我就可以得到一个完整的交叉连接,但是使用fid 列。所以预期的决赛桌是
id1 id2 val
1232 334 0.2
1232 443 0.2
3224 334 0.2
3224 443 0.2
3434 334 0.2
3434 443 0.2
...
基本上,对于x 中的每一行,我想从其他两个表中获取id1 和id2 的所有fid 值并保留val 值。我尝试过使用CJ,但并没有成功。任何帮助表示赞赏。
【问题讨论】:
标签: r merge data.table