我有一组文件,它们的命名不正确。文件名如下。
Generation_Flux_0_Model_200.txt
Generation_Flux_101_Model_43.txt
Generation_Flux_11_Model_3.txt
我需要替换第二个数字(型号)并将现有数字加1。因此,正确的名称应该是
Generation_Flux_0_Model_201.txt
Generation_Flux_101_Model_44.txt
Generation_Flux_11_Model_4.txt
这是我写的代码。我想知道如何指定数字的位置(用新数字替换字符串中的第二个数字)?
reNameModelNumber <- function(modelName){
#get the current model number
modelNumber = as.numeric(unlist(str_extract_all(modelName, "\\d+"))[2])
#increment it by 1
newModelNumber = modelNumber + 1
#building the new name with gsub
newModelName = gsub(" regex ", newModelNumber, modelName)
#rename
file.rename(modelName, newModelName)
}
reactionModels = list.files(pattern = "^Generation_Flux_\\d+_Model_\\d+.txt$")
sapply(reactionFiles, function(x) reNameModelNumber(x))
gsubfn
,gsubfn("\\d+(?=\\.[^.]*$)", ~ as.numeric(x) + 1, reactionFiles, backref=0)
。 - Wiktor Stribiżew