对于下面的代码,我期待一个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"))
答案 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