Я предлагаю вам делать вещи поэтапно, частично, чтобы убедиться, что он работает правильно (тестирование), частично потому, что его легко поддерживать / расширять.
FilesDf$FileName2 <- file.path(dirname(FilesDf$FileName),
gsub("\\+", "", paste0(FilesDf$FileTags, FilesDf$Filename)))
FilesDf
# FileName Filename FileTags FileName2
# 1 H:/name/+Sm,Jon.docx +Sm,Jon.docx RR UB AF- H:/name/RR UB AF-Sm,Jon.docx
# 2 H:/name/+Suth,Jane.docx +Suth,Jane.docx AF- H:/name/AF-Suth,Jane.docx
# 3 H:/name/+Dunn,Robert.docx +Dunn,Robert.docx RR LL- H:/name/RR LL-Dunn,Robert.docx
Если новые имена ($FileName2
) выглядятхорошо, тогда
ign <- mapply(file.rename, FilesDf$FileName, FilesDf$FileName2)
должно сработать.
(я изначально отвлекся на $FileName
против $Filename
и пропустил второе ...)
Данные:
FilesDf <- structure(list(FileName = c("H:/name/+Sm,Jon.docx", "H:/name/+Suth,Jane.docx",
"H:/name/+Dunn,Robert.docx"), Filename = c("+Sm,Jon.docx", "+Suth,Jane.docx",
"+Dunn,Robert.docx"), FileTags = c("RR UB AF-", "AF-", "RR LL-"
)), row.names = c(NA, -3L), class = c("data.frame"))