【问题标题】:Merge different data frames for common columns合并公共列的不同数据框
【发布时间】:2021-03-16 11:21:03
【问题描述】:

我有 5 个不同的数据框。我想根据它们拥有的公共列将它们合并在一起。但是我该怎么做呢?我阅读了关于 multimerge 的信息,但我不太确定该怎么做。例如我的 csv 文件就像

1st data frame df1
country  year weather temperature
2nd data frame df2
country year region 
3rd data frame df3
country humidity weather year temperature region
4th data frame  df4
country region weather humidity temperature

因此我的最终数据框应该是这样的

country year region

(因为这些列是共同的) 我应该使用

total < - multimerge(df1,df2,df3,df4, by = ["country,year,region"]

但是这会引发错误。

您是否建议另一种可能自动找到常用列并删除其余列的方法?

【问题讨论】:

  • 试试multimerge(list(df1,df2,df3,df4), by = c("country","year","region"))
  • 对不起,我是 R 新手。它说“找不到函数“multimerge””我从这里找到了命令 rdrr.io/github/vapniks/mergeutils/src/R/merge_utils.R。但是它没有集成在 R 中?我是否必须将大代码复制粘贴为函数?或者可以通过安装包来插入?
  • 这种情况下可以使用Reduce(function(x,y) merge(x,y,by=c("country","year","region")),list(df1,df2,df3,df4))

标签: r dataframe


【解决方案1】:

你引用的multimerge函数来自包mergeutils

你可以像这样使用纯粹的基础 R 解决方案

Reduce(function(x,y) merge(x,y,by=c("country","year","region")),list(df1,df2,df3,df4))

【讨论】:

  • 所以我按照你说的那样做了 reduce 命令,比如 total
  • @vakalo 你能检查一下c("Country","Year")) 是不是你的表中的通用字段名称和值/格式是否相同?
猜你喜欢
  • 1970-01-01
  • 2019-04-15
  • 2011-05-11
  • 2023-01-12
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
相关资源
最近更新 更多