【问题标题】:concatenating rows from two dataframes in R [duplicate]连接来自R中两个数据帧的行[重复]
【发布时间】:2014-05-29 14:57:25
【问题描述】:

给定以下两个数据框

key  name1  name2  name3
 k1    a       b      c
 k2    c       d      s



key  name4  name5  name6
 k1    t      f      h
 k2    v      s      u

如何将两个数据框连接成 1,使用键列作为参考,所以它看起来像:

key  name1  name2  name3  key  name4  name5  name6
 k1    a      b      c     k1    t      f      h
 k2    c      d      s     k2    v      s      u

【问题讨论】:

  • 此操作称为联接或合并。有一个函数merge
  • 使用merge,您可以进一步指定by 参数来引用两个数据框都有的列。在上面的示例中,您将设置 by = "key"

标签: r dataframe


【解决方案1】:

使用合并你可以合并数据框,在这种情况下你有两个df并且你想合并

> df1
  key name1 name2 name3
1  k1     a     b     c
2  k2     c     d     s
> df2
  key name4 name5 name6
1  k1     t     f     h
2  k2     v     s     u
> df3 <-merge(df1,df2,by="key")
> df3
  key name1 name2 name3 name4 name5 name6
1  k1     a     b     c     t     f     h
2  k2     c     d     s     v     s     u
> 

有关更多详细信息,您可以在 R 控制台中键入 ?merge

【讨论】:

  • @gung 谢谢你的评论,我已经编辑了我的答案
  • 这听起来像是正确的答案,但如果您想逐行合并而不是一次性合并整个数据帧。解决办法是什么?
  • 解决办法是不要那样做。
  • @user1375640 实际上我不明白您的意思是逐行合并,但如果您希望数据看起来像您提供的示例,您可以使用 cbind 函数逐列合并两个数据。 df3 = cbind(df1,df2)
猜你喜欢
  • 2019-10-08
  • 2017-08-06
  • 2018-03-27
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-15
  • 2018-10-19
  • 1970-01-01
相关资源
最近更新 更多