read_excel()和lapply()

时间:2016-01-08 04:54:49

标签: r lapply readxl

我的.xlsx文件有两张,我想使用read_excel包中的readxl生成两张excel表的列表。我使用过这段代码

my_work <- lapply(excel_sheets("data.xlsx"), 
                      read_excel, 
                      path = "data.xlsx")

read_excel()文件上多次调用"data.xlsx"函数,并且每个工作表一个接一个地加载。结果是一个数据框列表,每个数据框代表data.xlsx中的一个工作表。 我的问题是,为什么我要在lapply函数中编写path参数,因为该文件已经在工作目录中了?

2 个答案:

答案 0 :(得分:0)

文档:

read_excel(path,sheet = 1,col_names = TRUE,col_types = NULL,na =&#34;&#34;,   skip = 0)

参数路径是必需参数。所以你需要填写它。否则,会弹出一个错误。

答案 1 :(得分:0)

不确定这是最简单的方法,但是您可以创建一个简短函数,将read_excel()函数修改为接受工作表名称参数和路径,然后在该函数上输入lapply

library(readxl)
path <- "data.xlsx"
sheet_names <- excel_sheets(path)

# create function
read_excel_sheet <- function(sheet_name, path) {
  x <- read_excel(path = path, sheet = sheet_name)
}

my_work <- lapply(sheet_names, read_excel_sheet, path = path)