使用NA合并两个数据帧时出现问题

时间:2014-02-03 16:56:56

标签: r merge

对于下面的代码,我期待一个8乘3的数据框,其中“a”列是左边的公共列。相反,我得到一个32乘3的数据帧。当我使用日期作为公共列时,这对我有用,但现在不行。有什么想法吗?

a <- c("A","A","A","A","B","B","B","B")
b <- c(1,2,3,NA,NA,6,7,8)
c <- c(NA,NA,NA,4,5,6,7,8)
d1 <- data.frame(a,b)
d2 <- data.frame(a,c)
d3 <- merge(d1,d2,by=c("a"))

编辑:来自AM的指导导致我搜索与cbind合并数据帧,解决方案如此link中所述。

1 个答案:

答案 0 :(得分:2)

根据您描述的输出,听起来您想要cbind而不是merge。请尝试以下方法:

cbind(d1, d2[-1])
#   a  b  c
# 1 A  1 NA
# 2 A  2 NA
# 3 A  3 NA
# 4 A NA  4
# 5 B NA  5
# 6 B  6  6
# 7 B  7  7
# 8 B  8  8