【问题标题】:Read dataframe from list in multiple RData files从多个 RData 文件的列表中读取数据帧
【发布时间】:2023-03-24 14:14:01
【问题描述】:

我有一堆 RData 文件(1.RData、2.RData...100.RData),它们都包含三个列表元素,“X”、“Y”和“Z”。在列表 Z 中是一个数据框,我想在嵌套的 tibble 中读入 R。

我读取多个文件的首选方法显然不好:

library(tidyverse)

my_files <-
  list.files(path = "path_to_files",
             pattern = ".RData",
             recursive = TRUE,
             full.names = TRUE)

# how the hell am I suppose to read the Z$df into my nested tibble?

df <-
  tibble(filename = my_files) %>%
  mutate(file_contents = map(
    my_files,
    ~ load(.) 
  ))

这会产生一个带有列表列的小标题,其中每个列表包含字符值“X”、“Y”和“Z”,而所有数据都嵌套在每个列表中。

是否可以将嵌套数据帧从许多 RData 文件中读取到嵌套的 tibble 中?

(这是我在这里的第一个问题,所以我尽力令人满意地传达我的问题。)

【问题讨论】:

  • load 返回“创建的对象名称的字符向量,不可见” - 而不是对象本身。 (虽然该对象在适当的环境中仍然可用,但它保存为的名称。)也许您需要 readRDS() 代替?

标签: r loops tidyverse purrr rdata


【解决方案1】:

遍历文件名,加载,然后提取数据框,(未测试):

dfList <- lapply(my_files, function(i){
  load(i)
  Z$df
  })

【讨论】:

  • 哦,亲爱的,这太直接了。非常感谢,它完美运行。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
相关资源
最近更新 更多