R一次查找并替换多个脚本

时间:2014-08-28 12:02:37

标签: r replace

我有几个R脚本,我的客户只是想改变图形的颜色。

有没有办法一次找到并替换all而不是find& replace逐个打开脚本?

我尝试了一个名为fnr的小工具和.txt文件,它可以工作,但它没有.R文件。

4 个答案:

答案 0 :(得分:2)

这是使用R的一种方法,您可以在其中创建一个在文件中查找和替换文本的函数,然后将该函数应用于目录中的所有R脚本。

在下面的示例中,这会将任何R脚本中的代码color = 'green'更改为color = 'blue'

# Define function to find-and-replace text in a single file
  file_find_replace <- function(filepath, pattern, replacement) {
    file_contents <- readLines(filepath)
    updated_contents <- gsub(x = file_contents, pattern = pattern, replacement = replacement)
    cat(updated_contents, file = filepath, sep = "\n")
  }

# Apply the function to each of the R scripts in the directory
  my_r_scripts <- list.files(path = my_dir, pattern = "(r|R)$")

  for (r_script in my_r_scripts ) {
    file_find_replace(r_script,
                      "color = 'green'",
                      "color = 'blue'")
  }

答案 1 :(得分:0)

我找到了一个名为grepWin的非常有用的工具。它有很多搜索和替换选项。它搜索子文件夹,不同类型的匹配,日期过滤器等......

您可以在https://tools.stefankueng.com/grepWin.html

下载

enter image description here

答案 2 :(得分:0)

还有一个regexxer:https://github.com/GNOME/regexxer(对于Linux)。 RStudio开发人员似乎也在开发一种解决方案,如此处所述(其中包含有关其他方法的信息):https://github.com/rstudio/rstudio/issues/2066

答案 3 :(得分:0)

xfun R程序包具有一些功能来完全做到这一点(gsub_file()gsub_dir()等)

例如,如果您所有的R脚本都位于工作目录的子文件夹中,则只需编写以下内容即可:

library(xfun)

gsub_dir(dir = "Scripts", pattern = "color = 'green'", replacement = "color = 'blue'")