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?
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.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.
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.
Enregistrez votre espace de travail dans le répertoire souhaité et ensuite vous ouvrez simplement l'espace de travail à partir de l'Explorateur Windows.
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 .
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.
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.
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
).
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é,
[]