繁体   English   中英

将向量列表添加到R中的data.frame

[英]adding a list of vectors to a data.frame in R

如何向预分配的data.frame添加向量列表,以便向量形成data.frame的行?

例如。

ll<-list(c(1,2,3),c(2,3,4))
dd<-data.frame(matrix(nrow=10,ncol=3))  

我需要dd看起来像

1 2 3
2 3 4
do.call(rbind, ll)

添加到现有数据框

rbind(dd, do.call(rbind, ll)
# OR 
do.call(rbind, c(ll, list(dd))

如果你这样做了很多的数据帧,看rbind.fillplyr包一个更有效的方法。

这个问题有些奇怪:你构造了一个10行的数据帧,填充了NA值,但是你需要dd只有2行。

首先回答你的问题:有时候明显不是一个坏的解决方案。

ll<-list(c(1,2,3),c(2,3,4))
dd<-data.frame(matrix(nrow=5,ncol=3))

for(i in 1:length(ll)){
  dd[i,] <- ll[[i]]
}
dd

如果你正在盯着丑陋的for循环:这是一个你可以实际使用for循环而没有问题的情况。 但是这使得dd具有大量的NA值。 如果你想摆脱它们,你要么将数据帧初始化为

dd<-data.frame(X1=numeric(0),X2=numeric(0),X3=numeric(0))

它为您提供了一个空的数据帧,或者您使用complete.cases()来删除所有NAs:

dd <- dd[complete.cases(dd),]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM