Создать список фреймов данных из списка имен фреймов данных (для merge_all) - PullRequest
0 голосов
/ 26 июня 2019

У меня есть список имен фреймов данных, и я хочу создать список фреймов данных (или я хочу иметь возможность использовать список имен фреймов данных для вызова самого фрейма данных). Идея состоит в том, чтобы иметь возможность объединить все фреймы данных со списком имен фреймов данных.

У меня есть пример ниже, где ошибка, которую я делаю, очевидна: когда я обращаюсь к списку имен фреймов данных, я объединяю сами имена, а не фреймы данных, на которые ссылаются эти имена:

names.df<-c("red","green","blue")
variables.df<-c(1, 2, 3)

for(i in 1:length(names.df)){
assign(names.df[i],as.data.frame(i*variables.df))
}

df<-Reduce(function(x, y) merge(x, y, all=TRUE), list(names.df))

Есть идеи, как это решить?

1 Ответ

1 голос
/ 26 июня 2019

Если data.frames (red, blue и green) уже существуют в среде, вы должны быть в состоянии сделать

mget(names.df)

Это не ясно из вашего вопросаесли они уже существуют.Если они этого не делают, вы должны пойти с немного другим подходом

setNames(object = lapply(seq_along(names.df), function(i){
    data.frame(val = variables.df * i)
}), nm = names.df)

#$red
#  val
#1   1
#2   2
#3   3

#$green
#  val
#1   2
#2   4
#3   6

#$blue
#  val
#1   3
#2   6
#3   9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...