R如何cbind相邻的两个数据帧,用NA填充不相等的行



如何简单地"粘贴";相邻的两个数据帧,用NA填充不相等的行(例如,因为我想使"可操作"或类似的东西(?

df1 <- data.frame(a = c(1,2,3),
b = c(3,4,5))
df2 <- data.frame(a = c(4,5),
b = c(5,6))
# The desired "merge"
a b a b
1 3 4 5
2 4 5 6
3 5 NA NA

感谢Ronak Shah,我在这篇文章的答案中找到了一个简单的答案:如何在不重复较短向量元素的情况下对不同长度的向量进行cbind或rbind?

不需要破解任何东西,就可以使用qpcR:包中的cbind.na

df1 <- data.frame(a = c(1,2,3),
b = c(3,4,5))
df2 <- data.frame(a = c(4,5),
b = c(5,6))
comb <- qpcR:::cbind.na(df1, df2)

由于这个答案是4年前的,我想知道是否还有更多的"现代的";流行软件包中的解决方案,如tidyverse等人的

在基本R中,您可以执行:

nr <- max(nrow(df1), nrow(df2))
cbind(df1[1:nr, ], df2[1:nr, ])
#   a b  a  b
# 1 1 3  4  5
# 2 2 4  5  6
# 3 3 5 NA NA

最新更新