r - 将数据帧合并为一个数据帧,并将空数据帧保留为 NA

标签 r dataframe rbind

这是我的代码:

df1 <- data.frame(Intercept = .4, x1=.4, x2=.2, x3=.7)
df2 <- data.frame(Interceptlego = .5,x2=.8)
df3 <- data.frame()
myList <- list(df1, df2, df3)
do.call(rbind.fill, myList)

我想知道如何将 df3 作为“NA”绑定(bind)到单个数据帧中?

我从 r_blogger 找到一篇关于将长度不等的向量或数据帧组合成一个数据帧的文章。 http://www.r-bloggers.com/r-combining-vectors-or-data-frames-of-unequal-length-into-one-data-frame/

但是我从数据中获得的数据框,其中一些是空的,其中包含“<0 rows>(或0长度的row.names)”

我想要完成的是这样的

  Intercept  x1  x2  x3 Interceptlego
1       0.4 0.4 0.2 0.7            NA
2        NA  NA 0.8  NA           0.5
3        NA  NA NA   NA            NA

最佳答案

我不太明白你的逻辑。空 data.frame 不包含任何观察结果,并且在 rbinding 后不应产生一行。

无论如何,假设您知道至少出现一次的列名称:

myList <- lapply(myList, function(df) {
  if (!ncol(df)) df <- data.frame(Intercept = NA)
  df
})
library(data.table)
rbindlist(myList, fill = TRUE)
#   Intercept  x1  x2  x3 Interceptlego
#1:       0.4 0.4 0.2 0.7            NA
#2:        NA  NA 0.8  NA           0.5
#3:        NA  NA  NA  NA            NA

如果您不想使用 data.table,请随后使用 setDF

关于r - 将数据帧合并为一个数据帧,并将空数据帧保留为 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33442666/

相关文章:

r - 在另一个表中查找逗号分隔的数据

java - 将 R 接口(interface)到 Java

R( Shiny ): Create a drop down list that produces plots dynamically

r - 如何 rbind 匹配其列名的向量?

没有名称的 rbind data.frames

r - 尝试在 R 中重新创建特定类型的数据透视表

删除数据框中至少有两个重复列的行

Python 数据框

python - 为什么 df[[2,3,4]][2 :4] works and df[[2:4]][2:4] does not in Python

基于数据框名称中的通用模式的 rbind 数据框