【问题标题】:Renaming Objects in RStudio context sensitive within entire Project在整个项目中重命名 RStudio 上下文敏感的对象
【发布时间】:2016-03-19 01:00:56
【问题描述】:

我在使用 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 中找到这样的选项。有没有等价物?

【问题讨论】:

  • 我想您正在搜索字段下方寻找 Whole word 复选框,这将确保只有一个 a 匹配,但如果该词接近符号。例如。它匹配 a&lt;- 但不匹配 va&lt;-ab&lt;-
  • 已经有人问过类似的问题:stackoverflow.com/questions/14688446/…
  • 我不搜索Whole word 选项,也不搜索导航整个项目的功能。我正在寻找的功能是自动搜索变量的引用并仅替换它们 - 而不是同名变量。您的两个建议在我的示例中都不起作用,我只想在函数 c 中重命名 a
  • 你想要一只独角兽吗?
  • 备注在其他编程语言中常见:不是编程语言的问题,而是开发环境的问题(=DE)。您将哪个 DE 用于其他编程语言?最终你也可以将它用于 R。

标签: r keyboard-shortcuts rstudio organization gtd


【解决方案1】:

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

此功能可以轻松重命名变量的所有实例。这 工具是上下文感知的;将 m 更改为 m1 不会将 mtcars 更改为 m1tcars.

我找不到该功能的文档。虽然当我将光标放在d(要替换的变量名)的第一个实例上,然后选择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 ####
example <- 1:10
example[1]

【讨论】:

  • 试图让这个功能发挥作用让我想到了这个问题。有人能找到有关如何使用此新功能的文档吗?
  • 感谢您的回答,我发现该功能(可能)非常有用。但是,它是有限的。从您描述的问题来看,我发现范围仅限于一个文件特别成问题。如果我即使用该功能编辑在另一个文件中定义的对象的变量的名称,则名称将仅在所选脚本中更改。
猜你喜欢
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
  • 2015-12-09
  • 2014-01-12
  • 1970-01-01
  • 2010-12-20
相关资源
最近更新 更多