R如何从Excel文件中仅导入指定列含特定值的工作表?
R导入Excel含指定值工作表的实现方案
完全可以通过增加校验逻辑修改现有代码实现需求,修改后代码如下:
library(tidyverse) library(readxl) excel_sheets("mydata") %>% map(~{ # 读取当前工作表 temp_df <- read_xlsx("mydata", sheet = .x) # 校验规则:存在sport列且列中包含football值 if ("sport" %in% colnames(temp_df) && any(temp_df$sport == "football", na.rm = TRUE)) { return(temp_df) } # 不满足条件的工作表返回空 return(NULL) }) %>% # 合并所有符合条件的工作表 bind_rows()
代码说明
- 原代码缺少闭合括号,调整后补充了完整的逻辑校验环节
- 增加了双校验逻辑避免运行报错:
- 先校验当前工作表是否存在
sport列,过滤无该列的异常工作表 - 校验
sport列中是否存在football值,na.rm = TRUE参数可避免列中空值导致判断逻辑报错
- 先校验当前工作表是否存在
- 不满足条件的工作表返回
NULL,bind_rows方法会自动忽略空值,仅合并符合要求的表
内容的提问来源于stack exchange,提问作者adame
相关产品推荐
相关产品推荐

