求可实现截取字符串中从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
相关产品推荐
相关产品推荐

