R

Commande R pour définir le répertoire de travail sur l'emplacement du fichier source dans Rstudio

R Command Setting Working Directory Source File Location Rstudio



Solution:

Pour obtenir l'emplacement d'un script en cours de sourçage, vous pouvez utiliserutils::getSrcDirectory ouutils::getSrcFilename. Donc changer le répertoire de travail en celui du fichier courant peut se faire avec :

setwd(getSrcDirectory()[1])

Cela ne fonctionne pas dans RStudio si vous Courir le code plutôt que La source le faire. Pour cela, vous devez utiliserrstudioapi::getActiveDocumentContext.



setwd(dirname(rstudioapi::getActiveDocumentContext()$path))

Cette deuxième solution nécessite bien sûr que vous utilisiez RStudio comme IDE.




Je sais que cette question est obsolète, mais je cherchais également une solution pour cela et Google la répertorie tout en haut :



this.dir<- dirname(parent.frame(2)$ofile) setwd(this.dir)  

placez-le quelque part dans le fichier (le mieux serait le début, cependant), afin que le wd soit modifié en fonction de ce fichier.

Selon les commentaires, cela pourrait ne pas nécessairement fonctionner sur toutes les plateformes (Windows semble fonctionner, Linux/Mac pour certains). Gardez à l'esprit que cette solution sert à « rechercher » les fichiers, pas nécessairement à exécuter des morceaux dans ce fichier.

voir aussi obtenir le nom de fichier et le chemin du fichier `source`d




dirname(rstudioapi::getActiveDocumentContext()$path)

fonctionne pour moi mais si vous ne voulez pas utiliser rstudioapi et que vous n'êtes pas dans un projet, vous pouvez utiliser le symbole ~ sur votre chemin. Le symbole ~ fait référence au répertoire de travail par défaut de RStudio (au moins sous Windows).

Options RStudio

Si votre répertoire de travail RStudio est 'D:/Documents',setwd('~/proyect1') est identique à setwd('D:/Documents/proyect1').

Une fois cela défini, vous pouvez accéder à un sous-répertoire :read.csv('DONNÉES/mesdonnées.csv'). Est le même queread.csv('D:/Documents/proyect1/DATA/mydata.csv').

Si vous souhaitez accéder à un dossier parent, vous pouvez utiliser'../'. Par exemple:read.csv('../olddata/DATA/mydata.csv') qui est le même queread.csv('D:/Documents/oldata/DATA/mydata.csv')

C'est la meilleure façon pour moi de coder des scripts, quel que soit l'ordinateur que vous utilisez.