合并是重复r中的行

时间:2017-01-26 04:15:04

标签: r database dataframe merge

我有两个国家名称共同的数据集。

first data frame

正如您所看到的,两个数据集都以相同的方式形成了两个字母的国家/地区代码。

运行此代码后:     merged< - merge(aggdata,Trade,by =“Group.1”,all.y = TRUE,all.x = TRUE)

I get the following result

我希望它们能够结合使用,而不是拥有相同国家/地区代码的2行。

谢谢!

2 个答案:

答案 0 :(得分:1)

我强烈怀疑您的一个或另一个数据框中的Group.1字符串有一个或多个尾随空格,因此它们在查看时看起来相同,但不是。一种直观的方法,可以直观地检查它们是否相同:

levels(as.factor(Trade$Group.1))
levels(as.factor(aggdata$Group.1))

如果问题确实是尾随空格,那么如果您使用的是R 3.2.0或更高版本,请尝试:

Trade$Group.1 <- trimws(Trade$Group.1)
aggdata$Group.1 <- trimws(aggdata$Group.1)

更好的是,如果您使用read.table等输入数据,请使用参数strip.white=TRUE

为了将来参考,最好至少发布一个数据样本而不是截图。

答案 1 :(得分:0)

以下适用于我:

aggdata <- data.frame(Group.1 = c('AT', 'BE'), CASEID = c(1587.6551, 506.5), ISOCNTRY = c(NA, NA),
                      QC17_2 = c(2.0, 1.972332), D70 = c(1.787440, 1.800395))

Trade <- data.frame(Group.1 = c('AT', 'BE'), trade = c(99.77201, 100.10685))

merged<- merge(aggdata, Trade, by="Group.1" , all.y = TRUE, all.x=TRUE)

我不得不从你的截图中手动转录你的数据,所以我只做前两行。如果您可以粘贴完整的数据样本,那将会很有帮助。请参阅此处,了解有关生成可重现示例的一些指导原则:https://stackoverflow.com/a/5963610/236541