创建列表时使用数据框名称 of/from 个数据框

Use data frame names when creating a list of/from data frames

我有三个数据框:df1df2df3

我想将它们合并成一个列表:

dataframes <- list(df1, df2, df3)

如何将每个数据框的名称用于其对应的列表元素名称?

所以不是这个:

> names(dataframes)
[1] "" "" ""

我明白了:

> names(dataframes)
[1] "df1" "df2" "df3"

这是一个使用循环的选项。我假设 df1df2df3 是数据帧,并且已在某处定义。

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"

Demo

虽然许多人认为在 R 中使用循环是邪恶的,但上述情况并没有那么糟糕,因为我们只是随着循环的进行,一个接一个地添加新的列表项(及其名称)。

您需要在创建列表时为它们命名:

dataframes <- list(df1=df1, df2=df2, df3=df3)

names(dataframes)
#"df1" "df2" "df3"