【问题标题】:R join 2 data framesR加入2个数据帧
【发布时间】:2014-05-15 06:25:02
【问题描述】:

您好,我想知道如何在 R 中合并 2 个数据帧,有一个合并功能,但我想这样做:

data frame1
  X Y Z
1  1 1 1  
2  1 1 1
3  1 1 1
4  1 1 1
5  1 1 1

data frame 2
  A B C
1 2 2 2
2 2 2 2
3 2 2 2



mergedataframe
  X Y Z A B C 
1 1 1 1  
2 1 1 1 
3 1 1 1 2 2 2
4 1 1 1 2 2 2
5 1 1 1 2 2 2

我的想法是我必须同步 3 个 csv 文件(数据帧),但我不知道如何与 R 同步。

如果有人对此有任何想法,谢谢你

我重新编辑我的帖子,我希望我的合并数据框像这样:

数据框1

        X Y Z
    1  1 1 1  
    2  1 1 1
    3  1 1 1
    4  1 1 1
    5  1 1 1
    6  1 1 1

data frame 2
  A B C
1 2 2 2
2 2 2 2




mergedataframe
  X Y Z A B C 
1 1 1 1  
2 1 1 1 
3 1 1 1 2 2 2
4 1 1 1 2 2 2
5 1 1 1 
6 1 1 1

【问题讨论】:

    标签: mysql r merge rodbc rmysql


    【解决方案1】:
    df1 <- data.frame(X=rep(1,5),Y=1, Z=1)
    df2 <- data.frame(A=rep(2,3),B=2, C=2)
    #rownames(df2) <- 3:5
    rownames(df2) <- tail(rownames(df1), nrow(df2))
    
    mergedataframe <- merge(df1,df2, by=0, all=TRUE)
    mergedataframe <- mergedataframe[,-1]
    mergedataframe
    
      X Y Z  A  B  C
    1 1 1 1 NA NA NA
    2 1 1 1 NA NA NA
    3 1 1 1  2  2  2
    4 1 1 1  2  2  2
    5 1 1 1  2  2  2
    

    【讨论】:

    • 谢谢你的回答,但我没有像我预期的那样工作,我必须在第 3 行合并我的数据框(就像在你的帖子中一样)但是你的代码给了我一个简单的合并
    • 我不明白你想要什么 - 你所说的“简单合并”是什么意思?
    • by = 0 按行名合并。因此,如果要将 df2 放在 df1 的“末尾”,则需要在合并之前将行名称从 df1 的 tail 末尾添加到 df2:rownames(df2) &lt;- tail(rownames(df1), nrow(df2))
    • 当我在第 3 行时,我想将我的第二个数据帧与第一个数据帧合并,你的代码在最后 2 次观察中给了我 NA
    • 谢谢你们的回答,就像 Henrik 说的那样,我只是在合并之前放了 rownames(df2)
    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    相关资源
    最近更新 更多