2010-09-08 2 views
2

Как добавить список векторов в предварительно выделенный файл data.frame, чтобы векторы образовывали строки data.frame?Добавление списка векторов в data.frame в R

например.

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

мне нужно дд выглядеть

1 2 3 
2 3 4 

ответ

5

Там что-то странное вопрос: Вы построить dataframe с 10 рядами, заполненными значениями NA, но вам нужно дд иметь только 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 

Если вы смотрели на уродливого для петли: это тот случай, когда вы могли бы реально использовать для цикла без проблем. Но это держит dd, имеющим массу значений NA. Если вы хотите, чтобы избавиться от них, вы либо инициализировать dataframe, как

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

, который дает вам пустой dataframe, или вы используете complete.cases(), чтобы удалить все Nas:

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

+1 для complete.cases() –

8
do.call(rbind, ll) 

чтобы добавить в существующий фрейм данных

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

Если вы делаете это для фреймов много данных, см rbind.fill в пакете plyr для более эффективного подхода.

Смежные вопросы