在R中为fs路径字符向量的单数字文件名补前导零
实现方法
下面是几个高效的R语言实现方案,基于你已获取的CR_A_paths路径向量操作:
方案一:结合fs和stringr(推荐,语法清晰)
先提取文件名,通过正则替换补前导零,再生成新路径并重命名文件:
# 加载所需包 library(fs) library(stringr) # 提取原文件名 original_names <- path_file(CR_A_paths) # 给单数字补前导零:匹配output_后接单个数字的模式,替换为带0的格式 new_names <- str_replace_all(original_names, "output_(\\d)_CR\\.csv", "output_0\\1_CR.csv") # 生成新的完整路径 new_paths <- path_set(CR_A_paths, new_names) # 执行重命名(注意:先确认new_names正确再执行这一步,避免误操作) file_move(CR_A_paths, new_paths)
方案二:用Base R实现(无需额外加载stringr)
如果不想加载stringr,可以用Base R的sub函数完成正则替换:
library(fs) original_names <- path_file(CR_A_paths) # 用sub做替换,逻辑和上面一致 new_names <- sub("output_(\\d)_CR\\.csv", "output_0\\1_CR.csv", original_names) new_paths <- path_set(CR_A_paths, new_names) file_move(CR_A_paths, new_paths)
注意事项
- 执行
file_move前,建议先打印new_names检查替换结果是否符合预期,避免错误重命名 - 正则表达式
output_(\\d)_CR\\.csv只会匹配单个数字的情况,像output_22_CR.csv这类多数字文件名不会被修改,完全贴合你的需求
内容的提问来源于stack exchange,提问作者jo_
相关产品推荐
相关产品推荐

