【发布时间】:2020-12-20 10:42:19
【问题描述】:
我有两张桌子:
表1:
Var1 Var2
01-01 dhold_1
01-01 dhold_2
01-01 dhold_3
02-01 dhold_1
02-01 dhold_2
03-01 dhold_3
表2:
md dhold_1 dhold_2 dhold_3
01-01 1.01 1.05 1.04
02-01 1.03 0.09 0.99
我想在 table1 中创建一个新列,我们称之为Var3。
新列应包含表 2 中的相应值。我想您在查看最终结果时应该知道我的意思:
添加新列(目标)后的table1:
Var1 Var2 Var3
01-01 dhold_1 1.01
01-01 dhold_2 1.05
01-01 dhold_3 1.04
02-01 dhold_1 1.03
02-01 dhold_2 0.09
03-01 dhold_3 0.99
我在 R 中尝试了以下内容:
table1$Var3 <- table2[match(table1$Var1,table2$md),match(table1$Var2,colnames(table2))]
上面的代码在某种程度上产生了我想要的输出,put 不仅创建了 1 个新列,而且还创建了 n 新列,每个列都包含相同的内容。鉴于我有一个更大的文件,它最终以vector allocation error 结尾。
我花了几个小时寻找解决方案。有人有想法吗?提前非常感谢。
【问题讨论】: