У меня есть три фрейма данных: df1
, df2
, df3
.
Я хочу объединить их в список:
dataframes <- list(df1, df2, df3)
Как я могу использовать имена каждого фрейма данных для соответствующих им имен элементов списка?
Чтобы вместо этого:
> names(dataframes)
[1] "" "" ""
Я получаю это:
> names(dataframes)
[1] "df1" "df2" "df3"
Вот один из вариантов использования петли. Я предполагаю, что df1
, df2
и df3
являются фреймами данных и где-то были определены.
i <- 1
lst <- list() # an empty list
while (i <= 3) {
df_name <- paste0("df", i)
lst[[i]] <- get(df_name)
names(lst)[i] <- df_name
i <- i + 1
}
names(lst)
[1] "df1" "df2" "df3"
Хотя многие считают использование циклов в R злом, приведенный выше случай не так уж плох, потому что мы просто добавляем новые элементы списка (и их имена) один за другим по мере продвижения цикла.
Их нужно назвать при создании списка:
dataframes <- list(df1=df1, df2=df2, df3=df3)
names(dataframes)
#"df1" "df2" "df3"