web-dev-qa-db-ja.com

プロジェクト全体でコンテキスト依存のRStudioのオブジェクトの名前を変更する

RStudioを使用してRプロジェクトを開発するときに問題があります。オブジェクトを作成し、後で別の名前を付けたいことを認識します。次に、名前を手動で変更する必要がありますが、1つの行を簡単に監視するため、大規模なプロジェクトでは煩わしく、多くの場合エラーが発生します。 RStudioのreplaceall関数は、置換しようとしている名前と完全には一致しません。1つのファイルでのみ一致するため、変数の参照のみを考慮しませんサンプルコードを参照してください。

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

そのサンプルでは、​​関数内でaonlyの名前を変更したいと思います。 replaceallはコードを台無しにしますoutside関数。 aを編集したくありません。つまりVisual Studioには、ホットキーを使用して変数の名前を変更するオプションがあります:Ctrl + .。次に、Visual Studioは、プロジェクト全体で変数とその参照の名前を変更します。without編集された変数への参照を持たない同じ名前の変数を編集します。 RStudioでそのようなオプションを見つけることができませんでした。同等のものはありますか?

26
David Go

RStudio IDE v1. には、これを行うことを目的とした「スコープ内の名前変更」という機能が含まれています。

この機能により、変数のすべてのインスタンスの名前を簡単に変更できます。このツールはコンテキストに対応しています。 mm1に変更しても、mtcarsm1tcarsに変更されません。

RStudio Rename in Scope animated GIF

機能のドキュメントが見つかりません。アニメーションGIFの例は、d(置換する変数名)の最初のインスタンスにカーソルを置き、Code-> Rename in Scopeを選択すると機能します。ただし、同じ手順を試して2番目のインスタンスから開始すると、機能しません。だから明らかに、変数が割り当てられている場所から開始する必要がありますか?

## 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]
40
dnlbrky