【问题标题】:R- merging two data framesR-合并两个数据帧
【发布时间】:2014-04-14 18:29:37
【问题描述】:

我遇到了两个要合并的数据框的问题。 一个比另一个大,但它们共享共同的列名和行名。

我想做的是通过它们在每一行和每一列中的特定元素合并它们。

例如,我有 1 个数据框: row.names-US Bond,US Stock,EU Bond,EU Stock,Asia Bond,Asia Stock,col.names-Price Risk,Credit Risk,Market Risk;

另一个数据框: row.names-US Bond,US Stock;col.names-Price Risk;

理想情况下,我想通过它们唯一的行名和列名合并两个数据集。

示例:

dat1<-matrix(' ',nrow=4,ncol=6)
colnames(dat1)<-c("Value","Percentage","Credit.Risk","Interest.Risk","Interest.Credit.Risk","Total")
rownames(dat1)<-c("Low.Gov.Debt","Low.Corp.Debt","High.Gov.Debt","High.Corp.Debt")
new<-portfolio
rownames(new)<-c("High.Gov.Debt","Low.Gov.Debt")
colnames(new)<-c("Value")

【问题讨论】:

  • 欢迎来到 Stack Overflow!如果你提供a reproducable example,你会让其他人更容易帮助你
  • ?merge开始,如果这不能回答您的问题,请给我们一些数据的dput
  • 我已经尝试过 merge 和 plyr,但它不起作用。它只是以一种非常不合情理的方式混合数据。

标签: r merge plyr


【解决方案1】:

你需要通过row.names指定你匹配

merge(d1,d2,by="row.names")

【讨论】:

  • 如果数据框大小不同,则合并不起作用。此外,我不仅希望它们按行名组合,还希望按列名组合,以便每个特定元素都处于正确位置。我尝试使用 library(plyr) 和 do.call(rbind...) 函数,但由于某种原因数据框不会合并。
  • 你想如何组合它们?追加列,添加行,一起添加值?合并肯定适用于不同大小的 data.frames,但只会给出与两个 data.frames 相交的行(除非你另有说明)。也许提供一些示例数据?
  • dat1
  • 刚刚发布了一个示例代码。给定特定的行名和值,我基本上想将 dat1 与 new 结合起来。
猜你喜欢
  • 2019-03-29
  • 2018-05-31
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
  • 1970-01-01
相关资源
最近更新 更多