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

求可实现截取字符串中从20开始到末尾内容的R函数

R语言截取20开头文件名后续内容的实现方案

已确认所有文件名均以20开头的场景下,可选用以下两种常用实现方式:

方法1:正则替换法(基础包自带,无需额外安装依赖)

使用基础包的sub()函数直接匹配替换开头的20字符即可:

# 语法格式
sub(pattern = "^20", replacement = "", x = 待处理的文件名向量)

参数说明:

  • ^20:正则规则,仅匹配字符串开头的连续字符20,避免误替换文件名中间出现的20字符
  • 待处理的文件名向量:可直接传入list.files()获取的当前工作目录文件名列表

方法2:位置截取法

由于固定前缀20占2个字符位,可直接从第3位开始截取到字符串末尾:

基础包实现

substr(x = 待处理的文件名向量, start = 3, stop = nchar(待处理的文件名向量))

stringr包实现(tidyverse生态常用,写法更简洁)

library(stringr)
str_sub(string = 待处理的文件名向量, start = 3)

示例演示

# 模拟文件名向量
file_names <- c("2023_annual_report.pdf", "2024_survey_data.csv", "20project_archives.zip")
# 调用正则替换法处理
result <- sub("^20", "", file_names)
print(result)

运行输出结果:

[1] "23_annual_report.pdf" "24_survey_data.csv"   "project_archives.zip"

如果需要直接处理当前工作目录下所有20开头的文件,可直接用以下代码批量获取处理后的文件名:

# 先筛选所有20开头的文件
raw_files <- list.files(pattern = "^20")
# 处理文件名
processed_names <- sub("^20", "", raw_files)

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:36:03