【问题标题】:Use data frame names when creating a list of/from data frames [duplicate]在创建/从数据框列表时使用数据框名称[重复]
【发布时间】:2018-05-02 13:49:11
【问题描述】:

我有三个数据框:df1df2df3

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

dataframes <- list(df1, df2, df3)

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

所以,而不是这个:

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

我明白了:

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

【问题讨论】:

    标签: r list dataframe names


    【解决方案1】:

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

    dataframes <- list(df1=df1, df2=df2, df3=df3)
    
    names(dataframes)
    #"df1" "df2" "df3"
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-11-08
        • 2017-12-10
        • 2016-10-21
        • 1970-01-01
        • 2021-07-09
        • 1970-01-01
        • 2018-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多