【发布时间】:2017-01-02 12:34:27
【问题描述】:
我想将一个数据框中的行替换为另一个数据框中的 ID 和产品行。我曾尝试使用合并,但我只剩下合并的行。有没有办法合并/替换,以便我的数据集如下所示?
library(data.table)
DF <- as.data.table(list(ID = c(1,2,3,4,5), Product = c('Y', 'W', 'N', 'Z', 'A'), Type = c(2, 4, 5, 7, 4)))
DF
ID Product Type
1 Y 2
2 W 4
3 N 5
4 Z 7
5 A 4
和
DF2 <- as.data.table(list(ID = c(1,2,3), Product = c('Y','W','N'), Category = c(1, 1, 5)))
DF2
ID Product Category
1 Y 1
2 W 1
3 N 5
我想要的样子:
ID Product Type Category
1 Y 2 1
2 W 4 1
3 N 5 5
4 Z 7 NA
5 A 4 NA
我的代码:
merge(DF, DF2, by=c('ID', 'Product'))
【问题讨论】:
-
您的
DF和DF2在上面没有正确定义。你的一堆Product项目没有引号,所以R正在寻找具有这些名称的变量。在我的回答中解决了这个问题 -
@Dan - 现在在编辑中修复。