【问题标题】:How to import multiple sheets in an Excel Workbook如何在 Excel 工作簿中导入多个工作表
【发布时间】:2020-10-14 13:13:09
【问题描述】:

我想从 Excel 文件中导入八张工作表并将它们保存为单独的对象。出于本文的目的,我们将调用 Excel 文件 Test.xlsx 和工作表 Q1、HH5、L9、P9、TOO4、GG1、JQ1、HJ0、BM6、VT8。请注意,所有工作表都有不同的命名约定。

我非常习惯 SAS,您可以在其中构建宏并动态更改变量以循环显示工作表名称。我应该如何在 R 中解决这个问题?

谢谢

【问题讨论】:

    标签: r import apply


    【解决方案1】:

    这里每个工作表都保存为一个 data.frame(因此作为一个单独的对象):

    sheet_names <-c("Q1", "HH5", "L9", "P9", "TOO4", "GG1", "JQ1", "HJ0", "BM6", "VT8")
    for (i in 1:(length(sheet_names))) {
          excel_sheet <- read_excel("Test.xlsx", sheet = paste0(sheet_names[i]))
          assign(paste0(sheet_names[i]), excel_sheet)
          rm(excel_sheet)
        }
    

    如果有帮助,请告诉我们。

    【讨论】:

    • 我返回一个错误:assign(paste0(sheet_names[i], excel_sheet)) 中的错误:缺少参数“value”,没有默认值。你知道发生了什么事吗?
    • 我更新了遮阳篷。一个括号是错误的。现在是正确的:assign(paste0(sheet_names[i]), excel_sheet)
    • 很高兴听到。你能接受遮阳篷,让其他人看到它有效吗? :)
    【解决方案2】:

    试试这个。

    library("readxl")
    library("openxlsx")
    
    setwd("C:\\...")
    
    filenames <- list.files()
    
    data <- list()
    
    for(i in 1:length(filenames)){
    
        data[[i]] <- read.xlsx(filenames[i])
    
    }
    

    这应该可以解决您的问题。在文件名功能中,您可以使用 recursive = T 打开 te 目录中的文件夹和/或 pattern = ".xlsx" 以仅查找目录中的 .xlsx 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 2013-10-23
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2018-01-25
      相关资源
      最近更新 更多