有没有办法在几个 R 脚本中自动更改一行?

MSS*_*MSS 4 replace r edit

我有 50 个 R 脚本,我需要为所有这些脚本更改同一行。有没有办法同时使用“查找”和“替换”来完成所有这些操作,而不是一个一个?

zx8*_*754 7

循环遍历文件,逐行读取(readLines给出一个字符向量),然后更新第 N 行,并输出到新文件:

lapply(list.files(path = ".", pattern = "*.R", full.names = TRUE),
       function(i){
         x <- readLines(i)
         # if we want for example change the 6th row:
         x[ 6 ] <- "# MY NEW LINES"
         # then write output
         write(x, file = paste0("myCleanOutput/folder/path/", basename(i)))
       })
Run Code Online (Sandbox Code Playgroud)

但是,如果所有 R 脚本都相同,则可能使用将命令行参数传递给 R CMD BATCH 并且只有 1 个带参数的 Rscript 文件。

  • +1 的额外建议。如果您需要在 50 中覆盖同一行,通常会出现问题。听起来它应该是一个函数 (5认同)