【问题标题】:How do I put multiple data frames having different dimensions into a single list如何将具有不同维度的多个数据框放入单个列表中
【发布时间】:2020-11-03 13:33:53
【问题描述】:

例如,我有三个数据帧:df1、df2 和 df3,如下所示:

df1 <- data.frame(x = c(1:5), y = c(11:15))  
df2 <- data.frame(x = c(1:9), y = c(11:19), z = c(8:16) )    
df3 <- data.frame(x = c(2:5), y = c(11:14), z = c(3:6), g = c(4:7))

像往常一样,我们可以像这样手动将它们放入一个列表中:

mylist <- list(A = df1, B = df2, C= df3)

问题:

但现在,我有 1075 个具有不同维度的数据框,我被困在将它们放入一个列表中。

我有什么:

最近我有一个文件(ICON.RData)可以将1075个数据框直接放到R环境中。更具体地说,该文件包括那些 1075 个数据帧 + 1 个描述这 1075 个数据帧信息的数据帧,其中其第一列(名为 var_name)包含 1075 个数据帧中每个数据帧的名称。所以,我们很容易得到一个像这样的所有数据框的名称向量

名称

谁能帮帮我?

【问题讨论】:

  • 我不确定如何访问您的初始数据。你在找这个吗? list&lt;-lapply(your_data, read.csv) ?
  • mylist &lt;- mget( ICON$var_name) 会将所有数据帧放入一个名为mylist的列表中
  • 实际上我没有file.txt(或类似的东西)的数据,但只有ICON.RData的文件。所以我不能使用 read.csv :( @D.J
  • 真棒@AllanCameron,这就是我要找的。请点击“回答您的问题”重新回答,以便我标记您的回答

标签: r list dataframe


【解决方案1】:
mylist <- mget( ICON$var_name)

会将所有数据帧放入一个名为mylist的列表中

【讨论】:

    【解决方案2】:

    假设我们在最后的注释中显示了icon.RData,我们可以将其加载到环境iconEnv,然后将该环境转换为列表iconList,或者可能只使用iconEnv,而无需费心转换它到一个列表中,在这种情况下我们可以省略最后两行代码。

    load("icon.RData", envir = iconEnv <- new.env())
    
    iconList <- as.list(iconEnv)
    rm(iconEnv) # optional
    

    注意

    可复制形式的输入文件:

    df1 <- data.frame(x = 1:5, y = 11:15)  
    df2 <- data.frame(x = 1:9, y = 11:19, z = 8:16 )    
    df3 <- data.frame(x = 2:5, y = 11:14, z = 3:6, g = 4:7)
    save(df1, df2, df3, file = "icon.RData")
    rm(df1, df2, df3)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-11
      • 2021-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 2023-03-19
      相关资源
      最近更新 更多