合并R中的单列数据帧

时间:2016-02-13 20:34:08

标签: r merge

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

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函数一样。

谢谢!

1 个答案:

答案 0 :(得分:2)

我们可以通过&#39; row.names&#39;

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)])