2
我遇到以下情况。甲data.table看起来如下R扩展出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
co扩大上述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
,但没有达到目标。任何帮助赞赏。
我喜欢这两种解决方案,但特别是这种合并(合并(尼斯! –