R语言从Excel文件名提取指定字符串生成向量
提取Excel文件名指定部分生成向量
我来帮你搞定这个需求!要从多个Excel文件名里提取第一个下划线之前的内容生成向量,用R的字符串处理工具就能轻松实现,下面给你两种实用的方案:
方法一:基础函数 strsplit 实现
不需要额外加载包,用基础R函数就能完成:
# 第一步:获取当前目录下所有xls格式的文件名(仅返回文件名,不含路径) excel_files <- list.files(pattern = "\\.xls$", full.names = FALSE) # 第二步:按下划线拆分每个文件名,提取第一个部分 names_vector <- sapply(excel_files, function(file_name) { # 拆分文件名,取拆分后的第一个元素 strsplit(file_name, "_")[[1]][1] }) # 转换成标准向量(可选,sapply返回的结果本身已是向量) names_vector <- as.vector(names_vector) # 查看结果 print(names_vector) # 输出: [1] "x1" "gghi"
方法二:用 stringr 包简化操作
如果经常处理字符串,stringr 包的正则提取会更简洁直观:
# 先加载stringr包(如果没安装先运行 install.packages("stringr")) library(stringr) # 获取xls文件列表 excel_files <- list.files(pattern = "\\.xls$", full.names = FALSE) # 用正则表达式提取第一个下划线前的所有字符 # 正则 ^[^_]+ 表示:从开头匹配任意非下划线的字符,直到第一个下划线为止 names_vector <- str_extract(excel_files, "^[^_]+") # 查看结果 print(names_vector) # 输出: [1] "x1" "gghi"
小提示
如果你的文件名结构有变化(比如分隔符不是下划线、要提取的部分位置不同),只需要调整对应的拆分规则或正则表达式即可。比如如果分隔符是-,就把strsplit的参数改成"-",或者把正则里的_换成-。
内容的提问来源于stack exchange,提问作者msh855
相关产品推荐
相关产品推荐

