r - 如果缺少工作表,则需要跳过循环中的 Read.XLS 多个文件
问题描述
我正在尝试将 Excel 文件批量读入 R,但如果缺少相关工作表名称,我需要 R 跳过并继续循环。
library(xlsx)
file.list <- list.files(recursive=T,pattern='*.xlsx') #get files list from folder
for(i in 1:length(file.list))
{
filename=file.list[i]
data=read.xlsx(file = filename, sheetName="Income Statement", startColumn=2, startRow=4, header = T)
assign(x = filename,value = data)
}
我假设我需要在其中添加一个 if else 语句,但我不确定。任何建议表示赞赏!
解决方案
这是一个使用 的选项if()
:
library(xlsx)
file.list <- list.files(pattern = '*.xlsx', recursive = TRUE)
for(i in 1:length(file.list)) {
filename <- file.list[i]
sheets <- getSheets(loadWorkbook(filename))
if("Income Statement" %in% names(sheets)) {
data <- read.xlsx(file = filename,
sheetName = "Income Statement",
startColumn = 2,
startRow = 4,
header = TRUE)
assign(x = filename, value = data)
}
}
由reprex 包于 2021-03-03 创建(v1.0.0)
推荐阅读
- android-layout - Nativescript(JS,XML)中的版本感知组件
- r - Rvest/Stringr:删除不可见的符号分裂词?
- java - 如何为多部分请求编写 Spring Cloud 合约?
- azure-iot-edge - 是否可以使用设备流进行 SSH 到通过 X.509 身份验证的 IoT Edge 设备?
- esp32 - 接收(全部)LoRa 数据包时出现问题
- python - 用python加密解密消息
- gitlab - Gitlab多管道覆盖变量传递给新管道
- angular - Power BI 报告在 Angular 中的路径更改上嵌入破坏
- powershell - InvokeWebRequest 上的 GetOfficeActivationsUserDetail 意外错误
- c++ - 多线程减慢主线程