如何將向量列表添加到預先分配的data.frame,以便向量形成data.frame的行?將向量列表添加到R中的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
如何將向量列表添加到預先分配的data.frame,以便向量形成data.frame的行?將向量列表添加到R中的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
有一些古怪的問題:你構建一個數據幀有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),]
do.call(rbind, ll)
要添加到現有的數據幀
rbind(dd, do.call(rbind, ll)
# OR
do.call(rbind, c(ll, list(dd))
如果你這樣做了很多的數據幀,看rbind.fill
在plyr
包中,以獲得更高效的方法。
+1 for complete.cases() – 2010-09-08 10:10:10