代码之家  ›  专栏  ›  技术社区  ›  MSS

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

  •  4
  • MSS  · 技术社区  · 7 年前

    我有50个R脚本,我需要为所有这些脚本更改同一行。是否有一种方法可以同时执行所有这些操作,而不是使用“查找”和“替换”逐个执行?

    1 回复  |  直到 7 年前
        1
  •  7
  •   zx8754    7 年前

    循环浏览文件,逐行读取( 阅读行 给出一个字符向量),然后更新第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)))
           })
    

    但是,如果所有R脚本都相同,那么可以使用 Passing command line arguments to R CMD BATCH 并且只有1个接受参数的Rscript文件。