R 将一个表内容集成到另一个表内容中
如何在不添加其他列的情况下将内容合并到两个data.frames/表中R 将一个表内容集成到另一个表内容中,r,join,merge,integrate,R,Join,Merge,Integrate,如何在不添加其他列的情况下将内容合并到两个data.frames/表中 谢谢 如果您想在两个数据集中按列“ID”合并,这将适用于您 merge(x = TABLE1, y = TABLE2[ , c("Name", "Date", "ID")], by = "ID", all=TRUE) 合并时,我正在对第二个数据集进行子设置。如果要按Name、Date和ID列合并,则可以执行以下操作: merge(x = TABLE1, y = TABLE2[ , c("Name", "Date", "I
谢谢 如果您想在两个数据集中按列“ID”合并,这将适用于您
merge(x = TABLE1, y = TABLE2[ , c("Name", "Date", "ID")], by = "ID", all=TRUE)
合并时,我正在对第二个数据集进行子设置。如果要按Name
、Date
和ID
列合并,则可以执行以下操作:
merge(x = TABLE1, y = TABLE2[ , c("Name", "Date", "ID")], by = c("Name", "Date", "ID"), all=TRUE)
#Output
Name Date ID Price
1 Green <NA> KF3902 NA
2 Pink <NA> F43346 NA
3 <NA> 2017-08-04 AMA 2
4 <NA> 2017-09-29 <NA> 33
merge(x=TABLE1,y=TABLE2[,c(“名称”、“日期”、“ID”)],by=c(“名称”、“日期”、“ID”),all=TRUE)
#输出
姓名日期ID价格
1绿色KF3902 NA
2粉红色F4346 NA
3 2017-08-04 AMA 2
4 2017-09-29 33
这里是一个使用dplyr的解决方案:
library(dplyr)
full_join(table1, table2,
by = c("Name", "Date", "ID")) %>%
select(-Cost, -PNL) %>%
rename(Item = ID)
结果:
Name Date Price Item
1 <NA> 2017-09-29 33 <NA>
2 <NA> 2017-08-04 2 AMA
3 Pink <NA> NA F43346
4 Green <NA> NA KF3902
table1 = data.frame(Name = as.character(c(NA, NA)),
Date = as.Date(c("2017-9-29", "2017-8-4")),
Price = c(33, 2),
ID = c(NA, "AMA"),
stringsAsFactors = FALSE)
table2 = data.frame(Name = c("Pink", "Green"),
Cost = c(25, 876),
PNL = c(11, 252),
Date = as.Date(c(NA, NA)),
ID = c("F43346", "KF3902"),
stringsAsFactors = FALSE)
要获得OP所需的输出数据集,您实际上需要all=TRUE
我收到以下错误消息:“merge.data.table(x=TABLE1,y=TABLE2[,“Name”],:by
中列出的元素必须是x和y中的有效列名”-名称完全相同。@用户更正。感谢您指出。我更正为“all=TRUE”。仍然是相同的错误。@Tim最好在问题中发布我们的数据,这样我们就可以重现您的错误。当我们没有您使用的相同数据集时,很难判断出哪里出了问题。请不要将数据作为图像发布。而是键入dput(表1)
和dput(表2)
在您的R控制台中,通过编辑将他们的输出复制并粘贴到您的问题中。您可能还想查看此帖子,以提出一个可复制的问题:@useR谢谢您的建议!我很感激。这很有效。谢谢!@Tim不要忘记通过单击向下投票按钮下的灰色复选标记接受最佳答案:)