在创建数据框列表时使用数据框名称

时间:2018-05-02 13:49:12

标签: r list dataframe names

我有三个数据框:df1df2df3

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

dataframes <- list(df1, df2, df3)

如何使用每个数据框的名称作为相应的列表元素名称?

所以不要这样:

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

我明白了:

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

这是使用循环的一个选项。我假设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中的循环是邪恶的,但上面的情况并不是那么糟糕,因为我们只是随着循环的进行逐个添加新的列表项(及其名称)。