我有超过100个excel文件,每个文件有50张。我试图从每个文件中读取一张纸。我尝试阅读的工作表的位置和名称在每个文件中都有所不同。但是,每个文件中的工作表名称(我试图阅读)始终包含单词“validate”。所以,我试图从100个文件中读取包含单词validate的表单。这要求我使用正则表达式(如“grepl”来选择包含单词“validate”的表格)。我想知道这是否可行。据我所知,read_excel和xlsx包不允许这样做。我想要以下内容:
library(xlsx2)
files<-paste0("file",1:100)
lapply(files, function(i){
read.xlsx2(
paste0(i,".xlsx"),sheetName=grep("validate", ??,value=TRUE))})
答案 0 :(得分:0)
我发现这类任务更容易readxl:
首先,我在Excel文件中制作了一些虚假数据,然后检查名称并阅读感兴趣的标签:
sheets <- readxl::excel_sheets("test_38757844.xlsx")
for(x in sheets[grepl("validate", sheets) == T]){
print(x)
validate_x <- readxl::read_excel("test_38757844.xlsx", x)
print(head(validate_x))
}
[1] "validate1"
1 A
1 2 AA
2 3 Sas
3 4 SAS
4 4 GDD
5 5 ASD
6 6 asd
[1] "validate2"
1 a
1 2 s
2 3 s
3 4 d
4 5 d
5 6 f
6 7 g