【发布时间】:2017-01-26 04:15:03
【问题描述】:
我有两个国家名称相同的数据集。
如您所见,两个数据集都有一个格式相同的两个字母的国家/地区代码。
运行此代码后: 合并
我希望将它们合并在一起,而不是使用相同的国家/地区代码的 2 行。
谢谢!
【问题讨论】:
标签: r database dataframe merge
我有两个国家名称相同的数据集。
如您所见,两个数据集都有一个格式相同的两个字母的国家/地区代码。
运行此代码后: 合并
我希望将它们合并在一起,而不是使用相同的国家/地区代码的 2 行。
谢谢!
【问题讨论】:
标签: r database dataframe merge
我强烈怀疑您的一个或其他数据框中的 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
为了将来参考,最好至少发布一个数据样本而不是屏幕截图。
【讨论】:
以下对我有用:
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
【讨论】: