автоматические имена кадров данных - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть около 100 фреймов данных с такой же структурой, как d1, d2, d3, ..., d10, d11, ..., d100.Я должен rbind их вместе, как rbind(d1,d2,.....dxx).

. Я не хочу вручную писать имена всех фреймов данных, потому что в этом случае я вручную пишу более 100 имен фреймов данных, и это число может увеличитьсябудущее.Не могли бы вы помочь написать автоматический путь к rbind(d1,d2,d3,...,d10, d11,.....,d100,....)?

Ответы [ 4 ]

0 голосов
/ 27 декабря 2018

Пример - из моей работы:

filename_vector <- paste0(i, sep="_", df$unique.label.within.df, 
                          sep="", "intended.filename.csv")
0 голосов
/ 26 декабря 2018

Мы можем использовать mget для возврата list значений

out <- do.call(rbind, mget(paste0("d", 1:100)))
0 голосов
/ 26 декабря 2018

Основываясь на элегантном ответе Акруна (используя mget()), но используя эффективную bind реализацию dplyr, чтобы избежать do.call():

library(dplyr)
mget(paste0("d",1:100)) %>% bind_rows()
0 голосов
/ 26 декабря 2018

Сначала создайте вектор символов для всех объектов, которые вы хотите связать, например:

NameDf <- paste("d", 1:100, sep = "") 

Теперь сначала вызовите каждый объект, используя функцию get, и свяжите их вместе, используя do.call

NewDf <- do.call(cbind, lapply(NamesDf, FUN = function(x) get(x)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...