Вы можете использовать регулярное выражение для замены вхождений в тексте каждого файла, в котором вы вызываете старую функцию, используя функцию, подобную следующей:
replace_mgsub <- function(path) {
file_text <- readr::read_file(path)
file_text <- gsub("qdap::mgsub\\(([^, ]+) *, *([^, ]+) *, *([^\\)]) *\\)",
"textclean::mgsub\\(\\3, \\1, \\2\\)", file_text)
readr::write_file(file_text, path)
}
, которую вы затем вызываете для каждого соответствующегоpath
(я предполагаю, что здесь вы знаете список файлов, для которых требуется вызвать функцию; если нет, прокомментируйте ниже, и я могу добавить кое-что к этому).Вот демонстрация части функции gsub()
:
file_text <- "qdap::mgsub(pattern,replacement,x)"
cat(gsub("qdap::mgsub\\(([^, ]+) *, *([^, ]+) *, *([^\\)]) *\\)",
"textclean::mgsub\\(\\3, \\1, \\2\\)", file_text))
#> textclean::mgsub(x, pattern, replacement)
file_text <- "# I'll have in this part some irrelevant code
# to show it won't interfere with that
y = rnorm(1000)
qdap::mgsub(pattern,replacement,x)
z = rnorm(10)
# And also demonstrate multiple occurrences of the function
# as well as illustrate that it doesn't matter if you have spaces
# between comma separated arguments
qdap::mgsub(pattern, replacement, x)"
cat(gsub("qdap::mgsub\\(([^, ]+) *, *([^, ]+) *, *([^\\)]) *\\)",
"textclean::mgsub\\(\\3, \\1, \\2\\)", file_text))
#> # I'll have in this part some irrelevant code
#> # to show it won't interfere with that
#> y = rnorm(1000)
#> textclean::mgsub(x, pattern, replacement)
#> z = rnorm(10)
#> # And also demonstrate multiple occurrences of the function
#> # as well as illustrate that it doesn't matter if you have spaces
#> # between comma separated arguments
#> textclean::mgsub(x, pattern, replacement)