You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:44:28