【发布时间】:2016-01-18 05:29:46
【问题描述】:
我有两个不同维度的数据框,分别称为 df1 和 df2。它们都有称为 Product 和 Output 的整数列。
df2 具有称为 ActualOne 的唯一数字列。我想将 ActualOne 的所有值从 df2 附加到 df1,其中 df1 的 Product 和 Output 值与 df2 中的值联合匹配。对于 df2 中未找到的 Product、Output 对,ActualOne 由 NA 填充。
尝试 #1:使用 data.table
library(data.table)
setDT(df1)
setDT(df2)
df1[df2, ActualOne := i.ActualOne, on=c("Product", "Output")]
我绝不是 data.table 方面的专家。我认为无需重新格式化任何内容,并认为将临时存储为 data.table 更好。
我收到以下错误:
[.data.table(df1, df2,:=(ActualOne, i.ActualOne) 中的错误: 未使用的参数 (on = c("Product", "Output"))
尝试#2:使用匹配函数
在我的脑海中,大概是这样的:
df1$ActualOne <- df2[match(df1$Product,df2$Product) & match(df1$Output,df2$Output,"ActualOne"]
这导致 df1 的 ActualOne 列由“ActualOne”填充
感谢您的帮助。
【问题讨论】:
-
你有哪个版本的
data.table?on功能适用于 v1.9.6 或更高版本。 -
此外:总是尝试给minimal reproducible example。
标签: r merge data.table