在整个项目中重命名 RStudio 上下文敏感的对象

Renaming Objects in RStudio context sensitive within entire Project

我在使用 RStudio 开发 R 项目时遇到问题。我创建了一个对象,后来意识到我想给它起另一个名字。然后我必须手动更改名称,这在较大的项目中很烦人并且经常导致错误,因为我很容易监督一行。 RStudio 的 replace all 函数与我要替换的名称不太匹配,因为它只在一个文件中这样做,它也不只考虑变量的引用见示例代码:

f <- function(a){
    b <- a
return(a+b)
}
a <- 5;
a <-  a + f(1)

在该示例中,我想在函数内部重命名 a only。我必须这样做三次,而 replace all 会弄乱我的代码 函数之外。我不想编辑 a。 IE。 Visual Studio 有一个使用热键重命名变量的选项:Ctrl + .。然后 Visual Studio 重命名该变量及其在整个项目中的引用, 编辑没有对已编辑变量的引用的同名变量。我一直无法在 RStudio 中找到类似的选项。有对应的吗?

RStudio IDE v1.0 包含一个名为 "Rename in scope" 的功能,旨在实现此目的:

This feature makes it easy to rename all instances of a variable. The tool is context aware; changing m to m1 won’t change mtcars to m1tcars.

我找不到该功能的文档。虽然当我将光标放在 d(要替换的变量名)的第一个实例上,然后 select Code -> Rename in Scope 时,动画 GIF 中的示例仍然有效.但是,当我尝试相同的步骤但从第二个实例开始时,它不起作用。所以显然你需要从赋值变量的地方开始?

## Example from animated GIF
library(dplyr)
library(magrittr)
library(ggplot2)

d <- mtcars %>%                      ## Instance 1
  filter(cyl > 4) %>%
  select(hp, mpg)

ggplot(data = d, aes(x=hp, y=mpg)) + ## Instance 2
  geom_point() +
  geom_smooth()

实际上,似乎仍然存在阻止该功能工作的错误。例如,除非删除 header,否则下面的示例不起作用。

## Header ####
example <- 1:10
example[1]