Définir le répertoire de travail en R : getwd, setwd & Projets

Trouvez où R lit et écrit les fichiers, changez-le, et arrêtez de coder en dur des chemins qui cassent sur la machine suivante

Exécutez R dans RStudio et maîtrisez le répertoire de travail. Trouvez-le avec getwd(), changez-le avec setwd(), et comprenez pourquoi un chemin setwd() absolu est fragile — puis passez aux Projets RStudio et aux chemins relatifs here::here() pour que votre code s’exécute sur n’importe quel ordinateur.

Date de publication

26 juin 2026

Modifié

7 juillet 2026

AstucePoints clés
  • Le répertoire de travail est le dossier dans lequel R lit et écrit lorsque vous utilisez un chemin relatif.
  • getwd() l’affiche ; setwd("path") le change — notez les barres obliques, même sous Windows.
  • Un setwd("/Users/you/project") codé en dur casse dès que le code s’exécute sur une autre machine ou dans un autre dossier.
  • La solution moderne : un Projet RStudio définit le répertoire de travail à votre place, et here::here() construit les chemins depuis la racine du projet — portable, sans setwd().
  • Dans RStudio, définissez le répertoire depuis le menu (Session ▸ Set Working Directory) ou écrivez-le dans votre script.

Introduction

Vous exécutez read.csv("data.csv") et R répond cannot open file 'data.csv': No such file or directory. Le fichier est bien là — mais R cherche dans le mauvais dossier. Ce dossier, c’est le répertoire de travail : l’endroit où R lit et écrit chaque fois que vous lui donnez un chemin relatif (un nom de fichier sans lettre de lecteur ni / en tête).

Cette leçon couvre les trois choses dont vous avez réellement besoin : comment voir le répertoire de travail, comment le changer, et — la partie que les anciens tutoriels passent sous silence — comment arrêter de le définir à la main pour que votre analyse s’exécute à l’identique sur le portable d’un collègue ou sur un serveur. Nous le faisons dans RStudio, l’environnement que presque tout le monde utilise pour écrire du R.

Petit tour de RStudio

Ouvrez RStudio et vous voyez quatre volets. Vous n’avez besoin d’en reconnaître que trois pour suivre cette leçon :

  • Console (en bas à gauche) — tapez ici des commandes R et appuyez sur Entrée ; c’est là que getwd() affiche sa réponse.
  • Éditeur de source (en haut à gauche) — écrivez et enregistrez des scripts R (.R) et des documents Quarto/R Markdown ; File ▸ New File ▸ R Script en ouvre un vierge. Gardez votre travail ici, pas seulement dans la console.
  • Files / Plots / Packages / Help (en bas à droite) — l’onglet Files parcourt votre répertoire de travail ; Plots affiche les figures ; Packages liste ce qui est installé.
  • Environment / History (en haut à droite) — les objets que vous avez créés et les commandes que vous avez exécutées.

La console est l’endroit où vous essayez les choses ; l’éditeur de source est l’endroit où vous les gardez. Tout ce qui suit s’exécute de la même façon, que vous le tapiez dans la console ou que vous le lanciez depuis un script.

Trouver le répertoire de travail avec getwd()

getwd() (« get working directory ») renvoie le dossier vers lequel R pointe actuellement. Exécutez-le chaque fois que vous ne savez pas où un chemin relatif va atterrir :

getwd()
[1] "/Users/kassambara/Documents/git.nosync/datanovia2/datanovia-platform/content/_langs/fr/learn/programming/r-foundations"

Ce chemin est l’endroit où read.csv("data.csv") cherche et où write.csv(x, "out.csv") enregistre. Si un fichier ne se charge pas, exécutez d’abord getwd() — neuf fois sur dix, le fichier n’est tout simplement pas dans ce dossier.

Note

Le chemin affiché ci-dessus provient de la session R en navigateur de cette page, il ne correspondra donc pas à un dossier sur votre ordinateur. Exécutez getwd() dans votre propre RStudio pour voir votre véritable répertoire de travail.

Le changer avec setwd()

setwd() (« set working directory ») pointe R vers un autre dossier. Passez le chemin sous forme de chaîne de caractères, en utilisant des barres obliques / (elles fonctionnent sur tous les systèmes d’exploitation, y compris Windows) :

setwd("/Users/me/projects/sales-report")   # macOS / Linux
setwd("C:/Users/me/projects/sales-report")  # Windows — forward slashes, not backslashes

Une erreur Windows courante consiste à copier un chemin avec des barres obliques inverses (C:\Users\...). R lit \ comme un caractère d’échappement, donc remplacez-les par des / ou doublez-les (C:\\Users\\...).

Vous pouvez aussi le changer depuis le menu RStudio — Session ▸ Set Working Directory ▸ Choose Directory — ce qui est pratique de façon interactive. RStudio affiche alors l’appel setwd() correspondant dans la console, pour que vous puissiez le copier dans votre script.

Pour vérifier qu’un changement a bien pris effet, appelez de nouveau getwd() :

setwd("/Users/me/projects/sales-report")
getwd()
#> [1] "/Users/me/projects/sales-report"

Pourquoi un setwd() codé en dur est fragile

setwd("/Users/me/projects/sales-report") fonctionne parfaitement — sur votre machine, aujourd’hui. Il casse dès l’instant où :

  • un collègue exécute votre script (son dossier personnel n’est pas /Users/me/),
  • vous déplacez le projet vers un autre dossier ou un lecteur partagé,
  • le code s’exécute sur un serveur ou en CI où ce chemin n’existe pas.

Chaque setwd() absolu en haut d’un script est un bug de portabilité qui ne demande qu’à survenir. La solution n’est pas un meilleur chemin — c’est de ne pas définir le répertoire à la main du tout.

La méthode moderne : Projets RStudio + here::here()

Un Projet RStudio est un dossier contenant un fichier .Rproj qui le désigne comme la racine de votre travail. Créez-en un avec File ▸ New Project. Quand vous ouvrez ce projet, RStudio définit automatiquement le répertoire de travail sur le dossier du projet — pas besoin de setwd(), et c’est correct sur toutes les machines puisque c’est relatif à l’emplacement où vit le projet.

En plus de cela, le package here construit les chemins de fichiers depuis la racine du projet, de sorte qu’un chemin ne dépend jamais de l’ordinateur de qui que ce soit. here::here("data", "sales.csv") pointe toujours vers le data/sales.csv à l’intérieur de votre projet, que ce projet se trouve dans /Users/me/, C:/work/, ou sur un serveur :

# install.packages("here")  # run once
library(here)

here()                              # the project root
here("data", "sales.csv")           # <root>/data/sales.csv — portable
sales <- read.csv(here("data", "sales.csv"))

La règle d’or : ouvrez un Projet, puis utilisez here() pour chaque chemin de fichier. Vous ne taperez plus jamais setwd(), et le script qui s’exécute chez vous s’exécute chez tout le monde.

Si vous ne voulez pas de dépendance, les chemins relatifs simples fonctionnent aussi une fois que le répertoire de travail est la racine du projet (ce qu’un Projet garantit) : read.csv("data/sales.csv") lit depuis <project>/data/sales.csv. here() est plus robuste car il ne se soucie pas du sous-dossier depuis lequel votre script est exécuté — mais un simple chemin relatif est un bon point de départ, sans dépendance.

Lire et écrire relativement au répertoire de travail

Une fois le répertoire de travail défini (idéalement par un Projet), chaque chemin relatif est résolu par rapport à lui. Voici un aller-retour autonome — écrire un fichier, puis le relire — en utilisant le dossier temporaire de session de R afin que cela fonctionne partout, y compris dans le navigateur :

# A folder that always exists in this session (stand-in for your project folder)
setwd(tempdir())
getwd()
[1] "/private/var/folders/xm/8p6yj4bj6s57n4v_51714lwm0000gp/T/Rtmp4iMOM0"
# Write relative to the working directory...
write.csv(head(mtcars), "cars.csv", row.names = FALSE)

# ...and read it back with the same relative name
back <- read.csv("cars.csv")
head(back, 3)
   mpg cyl disp  hp drat    wt  qsec vs am gear carb
1 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
2 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
3 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

Le nom de fichier "cars.csv" ne porte aucun dossier — R le résout par rapport au répertoire de travail à la fois pour écrire et pour lire. C’est tout l’intérêt du répertoire de travail : les noms relatifs fonctionnent simplement, du moment que vous savez où R pointe.

Essayez en direct

Les blocs ci-dessus se sont exécutés au moment de la génération. Exécutez celui-ci pour inspecter le répertoire de travail — il s’exécute dans votre navigateur via webR (sans installation).

Note

Dans ce bac à sable en navigateur, le répertoire de travail est un système de fichiers virtuel, pas votre ordinateur — getwd() s’exécute et la lecture/écriture relative ci-dessus fonctionne, mais setwd("/Users/you/...") vers un chemin réel sur votre machine ne fonctionne que dans RStudio, sur votre propre ordinateur.

🟢 Avec un agent IA

Vous avez collé un script rempli de lignes setwd("/Users/someone/...") ? Demandez à Prova « convertis ceci en un Projet RStudio avec des chemins here::here() » — elle réécrit les chemins de fichiers, et comme le runtime est juste là, vous l’exécutez pour confirmer que les fichiers se chargent toujours. Demander à Prova →

Vous travaillez en Python ? L’équivalent os.getcwd() / os.chdir() arrive dans la série Python.

Problèmes courants

cannot open file 'data.csv': No such file or directory. Le fichier n’est pas dans le répertoire de travail. Exécutez getwd() pour voir où R cherche, puis déplacez-y le fichier, pointez-le avec here("data.csv"), ou donnez le chemin relatif complet depuis le répertoire de travail.

Error in setwd(...): cannot change working directory. Le chemin n’existe pas ou est mal orthographié. Sous Windows, ce sont presque toujours des barres obliques inverses — changez C:\Users\me en C:/Users/me (ou C:\\Users\\me). Vérifiez que le dossier existe vraiment avec dir.exists("the/path").

Le répertoire de travail n’arrête pas de « se réinitialiser ». RStudio définit le répertoire de travail chaque fois que vous ouvrez un Projet ou relancez. Si vous faites setwd() dans la console, cela ne dure que pour cette session — c’est exactement pour cela qu’un Projet (persistant, automatique) vaut mieux qu’un setwd() manuel.

Questions fréquentes

Utilisez setwd("path/to/folder") avec des barres obliques, par exemple setwd("C:/Users/me/project"). Dans RStudio, vous pouvez aussi utiliser le menu Session ▸ Set Working Directory ▸ Choose Directory. Mieux encore, ouvrez un Projet RStudio pour que le répertoire de travail soit défini automatiquement sur le dossier du projet.

Appelez getwd() — il renvoie le dossier dans lequel R lit et écrit pour les chemins relatifs. Exécutez-le chaque fois qu’un fichier ne se charge pas, pour confirmer où R cherche.

Parce que le chemin (/Users/me/..., C:/Users/me/...) n’existe que sur votre machine. Quand un collègue, un serveur ou un dossier déplacé n’a pas ce chemin exact, setwd() échoue. Utilisez un Projet RStudio + here::here() pour des chemins relatifs à la racine du projet, qui fonctionnent partout.

getwd() lit le répertoire de travail actuel (sans argument) ; setwd("path") le change vers le dossier que vous passez. « Get » pour vérifier, « set » pour changer.

Évitez un setwd() absolu codé en dur en haut d’un script — c’est le bug de portabilité le plus courant. Ouvrez un Projet RStudio (il définit le répertoire à votre place) et construisez les chemins de fichiers avec here::here() pour que le script s’exécute à l’identique sur n’importe quelle machine.

Testez vos connaissances

Affichez le répertoire de travail, puis écrivez mtcars dans un fichier nommé my-cars.csv (chemin relatif, sans dossier) et relisez-le aussitôt. Confirmez que les données ont bien fait l’aller-retour en affichant les trois premières lignes.

# getwd() takes no arguments.
# The relative filename is just the string "my-cars.csv" — no folder in front.
# read.csv() takes the same filename you wrote to.
getwd() write.csv(mtcars, "my-cars.csv", row.names = FALSE) back <- read.csv("my-cars.csv") head(back, 3)
getwd()

write.csv(mtcars, "my-cars.csv", row.names = FALSE)

back <- read.csv("my-cars.csv")
head(back, 3)

Vous partagez un script d’analyse avec un collègue. Quelle ligne a le moins de risque de casser sur sa machine ?

A. setwd("/Users/me/Documents/project") B. setwd("C:\Users\me\project") C. Ouvrir un Projet RStudio et utiliser here::here("data", "sales.csv")

Afficher la réponse

C. A pointe vers votre dossier personnel, qu’un collègue n’aura pas ; B code aussi en dur un chemin machine et utilise des barres obliques inverses que R ne peut pas lire. Un Projet RStudio définit le répertoire de travail automatiquement et here() construit les chemins depuis la racine du projet — portable sur n’importe quel ordinateur.

Conclusion

Le répertoire de travail n’est que le dossier dans lequel R lit et écrit pour les chemins relatifs. getwd() l’affiche, setwd() le change — mais un setwd() absolu codé en dur est un piège de portabilité. Ouvrez un Projet RStudio pour que le répertoire soit défini à votre place, ayez le réflexe here::here() quand vous construisez des chemins de fichiers, et votre analyse s’exécutera de la même façon sur chaque machine.

Leçons connexes

Cette page vous a-t-elle été utile ?

Prouvez que vous savez le faire. Maîtrisez toute la série Les bases de R — suivez votre parcours, construisez des projets et obtenez un certificat.

Commencer gratuitement →

Passez à Pro — Prova illimité sur vos propres données et un certificat vérifiable qui atteste la compétence.

dès 15 $/mois facturé annuellement

Passer à Pro →

✓ Vous êtes Pro — continuez. The runtime is the judge.

Recevez les nouvelles leçons R & Python par e-mail

Pratique, reproductible, sans spam. Désinscription à tout moment.

Double opt-in. Nous ne partageons jamais votre e-mail.

Partager cette pageXLinkedInRedditHN
Note

Cette leçon est reproductible : chaque résultat de cette page a été produit par le code affiché — modifiez n’importe quel bloc et appuyez sur Run pour le reproduire dans votre navigateur. The runtime is the judge.

Réutilisation

Citation

BibTeX
@online{2026,
  author = {},
  title = {Définir le répertoire de travail en R : getwd, setwd \&
    Projets},
  date = {2026-06-26},
  url = {https://www.datanovia.com/learn/programming/r-foundations/rstudio-working-directory},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
“Définir le répertoire de travail en R : getwd, setwd & Projets.” 2026. June 26. https://www.datanovia.com/learn/programming/r-foundations/rstudio-working-directory.