【问题标题】:Merge single column dataframes in R在 R 中合并单列数据框
【发布时间】:2016-02-13 20:34:08
【问题描述】:

我正在尝试使用以下代码合并两个数据框:

x<-data.frame(c(1:5))
colnames(x)[1]<- c("list1")

y<- data.frame(c(1:4))
colnames(y)[1]<-c("list2")

merge(x,y, by.x="list1", by.y="list2", all.x=T)

我的理想输出是这样的列表:

list1    list2
1        1 
2        2 
3        3
4        4
5        NA

但是,当我运行上面的脚本时,它只会给我这个输出:

list1
1     
2     
3     
4     
5

当我没有指定将 all.x 保留在合并函数中时,列表看起来也很相似。我不确定我到底做错了什么,因为 R 没有给我任何错误消息并运行代码。我只想获取两个单列列表并将它们像 VLOOKUP 函数一样对齐。

谢谢!

【问题讨论】:

    标签: r merge


    【解决方案1】:

    我们可以通过'row.names'merge

    merge(x,y, by ='row.names', all=TRUE)[-1]
    #     list1 list2
    #1     1     1
    #2     2     2
    #3     3     3
    #4     4     4
    #5     5    NA
    

    或使用match

    transform(x, list2=y$list2[match(x$list1, y$list2)])
    

    【讨论】:

    • 按行名合并仅在行名与数据列匹配时才有效。
    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 2012-04-06
    • 2018-08-04
    • 1970-01-01
    • 2017-02-24
    • 2015-01-17
    相关资源
    最近更新 更多