2010-09-08 89 views
2

如何將向量列表添加到預先分配的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 

回答

5

有一些古怪的問題:你構建一個數據幀有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),] 
+0

+1 for complete.cases() – 2010-09-08 10:10:10

8
do.call(rbind, ll) 

要添加到現有的數據幀

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

如果你這樣做了很多的數據幀,看rbind.fillplyr包中,以獲得更高效的方法。

相關問題