regex 在R中更新fs路径字符向量的元素名称

ztmd8pv5  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(88)

我有一个fs path字符向量,其中包含一个文件名列表,如下所示:

path/to/folder/output_1_CR.csv
path/to/folder/output_2_CR.csv
...
path/to/folder/output_22_CR.csv
...
path/to/folder/output_67_CR.csv

下面是我用来将这些输出文件读入fs路径字符向量的代码:

CR_A_paths <- fs::dir_ls(path = "/path/to/folder", regexp = "[CR].csv$")

我想在文件名中使用个位数更新文件的名称(例如output_1_CR.csv、output_5_CR.csv),使得在单个数字之前存在0(即,output_1_CR.csv变为output_01_CR.csv)
有什么有效的方法吗?
谢谢!

wbrvyc0a

wbrvyc0a1#

可以使用str_replace

to <- stringr::str_replace(CR_A_paths, "\\d+", ~sprintf("%02d", as.numeric(.x)))
 to

[1] "path/to/folder/output_01_CR.csv"  "path/to/folder/output_02_CR.csv" 
[3] "path/to/folder/output_22_CR.csv"  "path/to/folder/output_67_CR.csv "

现在要更新名称,请用途:

file.rename(CR_A_paths,to)
CR_A_paths <- c("path/to/folder/output_1_CR.csv", "path/to/folder/output_2_CR.csv", 
"path/to/folder/output_22_CR.csv", "path/to/folder/output_67_CR.csv "
)

相关问题