Как привязать несколько кадров данных по отдельности в R? - PullRequest
1 голос
/ 23 мая 2019

Существует фрейм данных (df) и список фреймов данных (df1, df2 ..), Я хочу связать df с каждым df в списке и сохранить в новом списке.

50 список фреймов данных

mylist # List of 50 elements

Другой базовый фрейм данных

single_data

Я создал пустой список

my_dfs = list()

Я хочу привязать single_data к каждому фрейму данных в списке

for (i in 1:length(mylist)){
  my_dfs[[i]] <- rbind(single_data, mylist$`i`) 
}

Но rbind не происходит, single_data имеет 5000 строк, а фреймы данных mylist имеют по 5000 строк каждый, а my_dfs [[i]] имеет только 5000 строк. Если я делаю индивидуально вместо цикла, он работает.

my_dfs1 <- rbind(single_data, mylist$`1`) 
my_dfs2 <- rbind(single_data, mylist$`2`) …

Я, кроме работы на петле.

1 Ответ

3 голосов
/ 23 мая 2019

Мы можем использовать lapply для циклического перебора list и rbind 'single_data' с каждым из list элементов

mylistnew <- lapply(mylist, function(x) rbind(single_data, x))

Если мы используем цикл for, используйте [[ вместо $. Кроме того, лучше иметь seq_along вместо 1:length

my_dfs <- vector('list', length(mylist))

for (i in seq_along(mylist)){
  my_dfs[[i]] <- rbind(single_data, mylist[[i]]) 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...