如何在R中仅导入标签名为纯数字的多个Excel工作表
解决方案
你只需在原代码中添加筛选纯数字工作表名称的步骤,利用正则表达式匹配纯数字字符串即可实现需求。修改后的代码如下:
read_excel_numeric_sheets <- function(filename) { # 获取所有工作表名称 all_sheets <- readxl::excel_sheets(filename) # 筛选出纯数字的工作表名称(匹配从头到尾都是数字的字符串) numeric_sheets <- all_sheets[grepl("^\\d+$", all_sheets)] # 仅读取筛选后的工作表 x <- lapply(numeric_sheets, function(X) readxl::read_excel(filename, sheet = X)) # 为结果命名 names(x) <- numeric_sheets x }
关键说明:
grepl("^\\d+$", all_sheets):使用正则表达式^\\d+$匹配纯数字字符串:^表示字符串的开头\\d+表示一个或多个数字$表示字符串的结尾
这个表达式会精准匹配仅由数字组成的工作表名称(如123、456),排除包含字母、空格或其他字符的名称(如sheet1、R Import)。
- 如果你的需求包含带小数点的数字工作表名(如
123.45),可以将正则表达式改为^\\d+\\.?\\d*$,这样就能匹配整数和小数形式的标签。
内容的提问来源于stack exchange,提问作者aseb
相关产品推荐
相关产品推荐

