【问题标题】:How can we use read_excel for reading .xlsx files in R?我们如何使用 read_excel 在 R 中读取 .xlsx 文件?
【发布时间】:2020-01-22 13:35:07
【问题描述】:

我想将所有的 Excel 文件一一读取到 temp.data 变量中。有没有办法做到这一点?我试过这个

for (i in 1:15) {
temp.data <- read_excel(file.path("../source",files$file_path[[i]]))
}

或者是否有其他方法可以在这里不使用 for 循环?

提前致谢:)

【问题讨论】:

  • 您将它们全部存储在同一个变量中,因此用新文件覆盖以前的文件。您应该将数据存储在表中

标签: r excel dplyr xlsx purrr


【解决方案1】:

如果您想要数据框中的输出,并且“源”文件夹中有相关文件,则应执行以下操作:

purrr::map_dfr(list.files("../source", full.names = TRUE), read_excel)

如果您的代码中仅包含特定文件,那么这可能会为您提供很好的服务:

purrr::map_dfr(file.path("../source",files$file_path), read_excel)

【讨论】:

  • 我应该在哪里保存文件$file_path[[i]]) 在purrr::map_dfr(list.files("../source", full.names = TRUE), read_excel)@giocomai
  • 那行代码假定您在该“源”文件夹中拥有所有文件...如果您在向量中有文件列表,那么您可以放置​​该向量而不是 list.files("../source", full.names = TRUE)(不来自循环的 [i] ......这里没有循环)
【解决方案2】:

要将生成的data.frames 存储在列表中,您可以执行以下操作:

lapply(file.path("../source", files$file_path), read_excel)

【讨论】:

    【解决方案3】:

    您可以使用 purrr 包中的 de map 函数:

    your_path = "C:\...\2_souce_data"
    files_xlsx <- list.files(your_path, pattern = ".xlsx", full.names = T)
    
    temp.data = map(files_xlsx, read_excel, sheet = "your_sheet_index_or_name", col_names =TRUE)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 1970-01-01
      • 2020-02-12
      • 2021-08-05
      • 2020-07-07
      • 2018-11-27
      • 1970-01-01
      相关资源
      最近更新 更多