我正在尝试使用以下代码合并两个数据框:
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函数一样。
谢谢!
答案 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)])