добавление списка векторов в data.frame в R - PullRequest
2 голосов
/ 08 сентября 2010

Как добавить список векторов в предварительно выделенный файл 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

Ответы [ 2 ]

12 голосов
/ 08 сентября 2010
do.call(rbind, ll)

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

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

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

6 голосов
/ 08 сентября 2010

В этом вопросе есть что-то странное: вы строите информационный фрейм из 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 без проблем.Но это сохраняет тонны значений NA.Если вы хотите избавиться от них, вы можете либо инициализировать ваш фрейм данных как

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

, который дает вам пустой фрейм данных, либо использовать complete.cases () для удаления всех NA:

dd <- dd[complete.cases(dd),]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...