【问题标题】:Is there a way to automatically change a line in several R scripts?有没有办法在几个 R 脚本中自动更改一行?
【发布时间】:2018-06-19 01:15:58
【问题描述】:

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

【问题讨论】:

标签: r replace edit


【解决方案1】:

遍历文件,逐行读取(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)))
       })

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

【讨论】:

  • +1 以获得额外建议。如果您需要覆盖 50 中的同一行,通常会出现问题。听起来它应该是一个函数
猜你喜欢
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 2020-09-30
  • 2016-03-21
  • 1970-01-01
相关资源
最近更新 更多