我是R编码的新手,我正在尝试编写代码,以便在同一文件夹中重命名一系列pdf文件:
Letter131.pdf
Letter132.pdf
Letter133.pdf
我可能最终需要重命名约1000个文件。
我想重命名这些文件,以便他们有一个" _"在第2和第3位之间:
Letter13_1.pdf
Letter13_2.pdf
Letter13_3.pdf
我找到了重命名多个文件的各种答案,不幸的是我无法重新开始工作。
我想出的一个例子是:
file_names <- list.files(pattern="*.pdf")
sapply(file_names, FUN = function(eachPath){
file.rename(from = eachPath, to = sub(pattern = "Letter13$.pdf", paste0("Letter13_$"), 1:3, eachPath))
})
有人能帮我解决这个问题吗?
答案 0 :(得分:3)
file.rename
是矢量化的,不需要在这里使用循环:
## insert _ using grouping pattern
TO <- sub('(.*)([0-9][.]pdf)','\\1_\\2',file_names)
## rename a vector
file.rename(file_names , TO)
模式使用示例:
file_names <- c("Letter131.pdf","Letter132.pdf","Letter133.pdf")
sub('(.*)([0-9][.]pdf)','\\1_\\2',file_names)
## [1] "Letter13_1.pdf" "Letter13_2.pdf" "Letter13_3.pdf"