r语言 - 从文件中读取excel表格,并将它们绑定成单个数据帧



我有以下两个函数读取excel表格,进行一些数据清理并将这些表格绑定在一起。

library(tidyverse)
library(readxl)
read <- function(Path, Sheet){
df <- read_excel(path = Path, sheet = Sheet, 
skip = 24,
na = '-')[-2, ]  %>%
mutate(name = Sheet) %>%
rename_all(~str_replace_all(., "\s+", ""))

return(df)
}
sheets <- function(number){
if(number == 1){
Sheets <- c("A", "B")
} else if(number == 2){
Sheets <- c("C","D")
} else{
warning("sheet number can only be 1 or 2")
}
s1<-read(path="Data/file1",Sheet=Sheets[1])
s2<-read(path="Data/file1",Sheet=Sheets[2])
return(rbind(s1,s2))
}

这些函数工作得很好,但我想更新'sheets()'函数,以便它将任意数量的表绑定在一起(而不是像我上面所做的那样假设固定数量(2)张表。我正在考虑使用for循环,但有更好的方法来做到这一点吗?

您可以使用excel_sheets获取excel中的所有工作表,并将它们与map_df组合在一起。

sheets <- function(path){
sheets <- readxl::excel_sheets(path)
purrr::map_df(sheets, read, Path = path)
}
result <- sheets('Data/file1')

最新更新