39

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

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

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

4

1 回答 1

60

RStudio IDE v1.0包含一个名为“在范围内重命名”的功能,旨在执行此操作:

此功能使重命名变量的所有实例变得容易。该工具是上下文感知的;更改mm1不会更改mtcarsm1tcars

RStudio 在范围内重命名动画 GIF

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

## 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 ####
example <- 1:10
example[1]
于 2016-11-19T05:07:55.930 回答