web-dev-qa-db-fra.com

Comment amener R à reconnaître votre répertoire de travail comme son répertoire de travail?

J'utilise R sous Windows sur plusieurs machines.

Je sais que vous pouvez définir le répertoire de travail à partir d'un script R, comme ceci

setwd("C:/Documents and Settings/username/My Documents/x/y/z")

... mais cela rompt la portabilité du script. Il est également ennuyeux de devoir inverser toutes les barres obliques (puisque Windows vous donne des barres obliques inverses)

Existe-t-il un moyen de démarrer R dans un répertoire de travail particulier afin que vous n'ayez pas besoin de le faire au niveau du script?

22
Dan Goldstein

Vous devez copier le raccourci vers R (fichier R.lnk) dans le dossier désiré. Ensuite, dans "Propriétés" (bouton droit de la souris -> dernière option), supprimez tout dans le champ "Démarrer dans ..." du deuxième onglet ("Raccourci"?). Si vous démarrez R avec ce raccourci, le répertoire de travail sera celui où se trouve le raccourci.

Je n'ai pas de version anglaise de Windows, donc je ne suis pas sûr des noms de champs, mais ils devraient être faciles à trouver.

Des questions similaires se trouvaient dans R-windows-faq:

2.5 Comment puis-je l'exécuter?

2.10 Comment puis-je conserver des espaces de travail pour différents projets dans différents répertoires?

2.14 Que sont les répertoires HOME et de travail?

En 2.14, il est mentionné que

Le répertoire de travail est le répertoire à partir duquel Rgui ou Rterm a été lancé, sauf si un raccourci a été utilisé lorsqu'il est indiqué par le champ `Démarrer dans 'des propriétés du raccourci.

15
Marek

Vous pouvez utiliser une variable d'environnement. Cela peut fonctionner avec Sys.getenv() et Sys.setenv(). Par exemple:

> Sys.setenv(R_TEST="testit")
> Sys.getenv("R_TEST")
  R_TEST 
"testit" 

Si vous avez envoyé la variable dans votre script, vous devriez pouvoir y accéder de l'intérieur, puis appeler setwd() sur cette sortie.

6
Shane

Enregistrez votre espace de travail dans le répertoire souhaité et ensuite vous ouvrez simplement l'espace de travail à partir de l'Explorateur Windows.

5
Rob Hyndman

J'ai mis la ligne suivante devant mes scripts et cela me permet de travailler sur mes ordinateurs.

setwd(path.expand("~/path/to/working/directory/") )

où ~ est = dans votre répertoire personnel.

Sys.setenv(HOME = "path") ou Sys.setenv(R_USER = "path") peuvent tous deux définir le répertoire personnel.

Dans mon cas, je travaille sur plusieurs boîtes Windows, chacune a des structures de répertoires assez différentes, mais en définissant correctement le répertoire personnel, je peux synchroniser le code entre les ordinateurs et les faire fonctionner correctement sur chacun, car lorsque j'exécute mes projets R, ils ont des structures de répertoires similaires .

4
Robert

Juste un détail: au lieu d'inverser les barres obliques comme vous le dites, ajoutez simplement une autre barre oblique inverse. Deux de ces \\ fonctionnent de la même manière que l'un d'eux /. Cela rend au moins un peu plus facile.

3
Ehva

Si vous utilisez Emacs/ESS, ce n'est pas un problème. Je navigue jusqu'au répertoire où se trouve mon script R, l'ouvre, puis démarre un processus R ESS. Une console R apparaît avec le répertoire courant comme répertoire de travail de R.

Si vous ne l'avez pas converti en Emacs/ESS, je le recommande. (Bien que pour éviter une guerre des flammes, je note également qu'il existe des options similaires pour les utilisateurs de Vi.)

J'espère que cela pourra aider.

3
Christopher DuBois

Pour Ubuntu:
Insérez la commande suivante dans votre .Rprofile fichier (généralement dans votre répertoire personnel):

setwd(Sys.getenv("PWD"))

Maintenant, votre répertoire de travail par défaut sera le répertoire à partir duquel vous avez lancé R. Gardez à l'esprit que vous pouvez également configurer des espaces de travail par défaut dans différents répertoires en enregistrant votre image d'espace de travail en tant que .RData partout où vous prévoyez de lancer R (sources de démarrage .Rprofile avant de rechercher .Rdata dans le cwd).

2
Brian Mack

Pour définir le répertoire de travail R comme le répertoire courant du script R sur lequel je travaille, j'utilise toujours une combinaison des commandes getwd() et setwd(), comme ceci:

path <- getwd() setwd(path)

ou

setwd(getwd())

Si vous voulez en savoir plus, consultez ceci article .

À votre santé,

[]

0
user2788076