Renommer les objets dans le contexte RStudio sensible dans l'ensemble du projet

j'ai un problème lorsque je développe un projet R en utilisant RStudio. Je crée un objet, puis je réalise plus tard que je veux lui donner un autre nom. Je dois alors changer manuellement le nom, ce qui dans les grands projets est ennuyeux et entraîne souvent des erreurs, car je supervise facilement une ligne. replaceall la fonction de RStudio ne correspond pas tout à fait au nom que j'essaie de remplacer, car elle ne le fait que dans un seul fichier, elle ne considère pas seulement les références de la variable voir Exemple code:

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

dans cet exemple, j'aimerais renommer a à l'intérieur de la fonction. Je dois faire trois fois, tandis que replaceall serait gâcher mon code dehors la fonction. Je ne veux pas le modifier a. C'est-à-dire: Visual Studio dispose d'une option pour renommer une variable en utilisant le hotkey:Ctrl+ .. Puis Visual Studio renomme la variable et ses références dans l'ensemble du projet, sans Montage également nommé les variables qui n'ont pas de référence à l'modifiée. Je n'ai pas pu trouver une telle option dans RStudio. Est-t-il un équivalent?

18
demandé sur David Go 2015-12-13 17:02:00

1 réponses

RStudio IDE v1.0 comprend une fonctionnalité appelée "Renommer dans le champ d'application" qui vise à faire ceci:

Cette fonctionnalité permet de renommer toutes les occurrences d'une variable. Le l'outil est sensible au contexte; la modification de l' mm1 ne change pas mtcars pour m1tcars.

RStudio Rename in Scope animated GIF

Je ne trouve pas de documentation pour cette fonctionnalité. L'exemple du GIF animé fonctionne cependant quand je place le curseur sur la première occurrence de d (le nom de la variable à remplacer), puis sélectionnez Code -> Rename in Scope. Cependant, lorsque j'essaie les mêmes étapes, mais en partant de la deuxième instance, cela ne fonctionne pas. Donc apparemment vous devez commencer par l'endroit où la variable est assignée?

## 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()

dans la pratique, il semble encore y avoir des bugs qui empêchent la fonctionnalité de fonctionner. Par exemple, l'exemple ci-dessous ne fonctionne pas, à moins que l'en-tête est supprimé.

## Header ####
example <- 1:10
example[1]
28
répondu dnlbrky 2016-11-19 15:00:18