0Pricing
R Academy · Leçon

Projets R et gestion de l’espace de travail

Créez des projets RStudio et gérez .RData, .Rhistory et .Renviron.

Projets R et gestion de l’espace de travail est une leçon R Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage R Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours R Academy comprend 4 leçons au total.

L’espace de travail R : .RData et .Rhistory

Par défaut, lorsque vous quittez R, le programme vous demande d’enregistrer l’espace de travail — tous les objets en mémoire — dans un fichier caché appelé .RData, situé dans le répertoire de travail. L’historique de vos commandes est enregistré dans .Rhistory. Ces fichiers sont chargés automatiquement lors de la session suivante.

Cette commodité peut également nuire à la reproductibilité.

# .RData: binary snapshot of all objects in the global environment
# .Rhistory: text file of every command you typed

# See what would be saved right now:
cat('Objects that would be saved:', length(ls()), '\n')
cat('Their names:', paste(ls(), collapse = ', '))

# Workspace saving is controlled by:
# Tools -> Global Options -> General -> Save workspace (NEVER recommended)
# Or at startup: R --no-save --no-restore

Pourquoi éviter l’enregistrement automatique de .RData ?

Si vous vous fiez à .RData, vos résultats ne peuvent pas être reproduits à partir de zéro. Des objets s’accumulent invisiblement d’une session à l’autre, d’anciennes variables masquent les nouvelles et vos collaborateurs ne peuvent pas reproduire votre environnement. La solution : n’enregistrez jamais l’espace de travail — recréez-le toujours en exécutant vos scripts.

# The recommended R startup setting (in RStudio):
# Tools -> Global Options -> General
#   Restore .RData at startup: UNCHECKED
#   Save workspace on exit: NEVER

# This forces you to write scripts that are fully self-contained.
# A fresh session that runs cleanly = reproducible analysis.

# Equivalent command-line flags:
# R --no-save --no-restore

cat('Always start fresh!')

rm() — Effacer l’espace de travail

rm(list = ls()) est la manière canonique de supprimer tous les objets de l’environnement global, simulant une nouvelle session sans redémarrer R. Cette instruction est souvent placée au début d’un script afin de garantir un environnement vierge à chaque exécution.

# Create some objects
a <- 1
b <- 'hello'
df <- data.frame(x = 1:3)

cat('Before rm:', length(ls()), 'objects\n')

# Remove specific objects
rm(a, b)
cat('After rm(a,b):', length(ls()), 'objects\n')

# Remove ALL objects in global environment
rm(list = ls())
cat('After rm(list=ls()):', length(ls()), 'objects')

options() — Paramètres globaux de session

options() contrôle de nombreux comportements applicables à toute la session R. Deux des options les plus couramment définies sont scipen (pénalité de la notation scientifique) et digits (nombre de chiffres significatifs affichés). Définissez-les au début de vos scripts pour obtenir des résultats cohérents.

# Default behavior:
cat(0.000123456, '\n')    # may show 1.23456e-04

# Suppress scientific notation (positive scipen = prefer fixed)
options(scipen = 999)
cat(0.000123456, '\n')    # now shows 0.000123456

# Control printed digits
options(digits = 4)
cat(pi, '\n')              # 3.142

# Check current options:
cat('scipen:', getOption('scipen'), '\n')
cat('digits:', getOption('digits'))

.Renviron — Variables d’environnement

Le fichier .Renviron stocke les variables d’environnement que R charge au démarrage. C’est l’emplacement approprié pour les secrets et les valeurs de configuration, comme les clés d’API, les mots de passe de bases de données et les chemins du système de fichiers — afin de les conserver hors de votre code source.

# .Renviron file (in ~ or project root):
# DATABASE_URL=postgres://user:pass@host/db
# OPENAI_API_KEY=sk-abc123
# DATA_ROOT=/data/shared

# Read in R:
db_url <- Sys.getenv('DATABASE_URL')
api_key <- Sys.getenv('OPENAI_API_KEY', unset = 'KEY_NOT_SET')

cat('DB URL set:', nchar(db_url) > 0, '\n')
cat('API key:', api_key)

# To edit .Renviron:
# usethis::edit_r_environ()   <- if usethis is installed
# file.edit('~/.Renviron')    <- base R

saveRDS() — Enregistrer un objet unique

saveRDS() sérialise un objet R unique dans un fichier .rds. C’est la méthode privilégiée pour mettre en cache les résultats de calculs coûteux, car le fichier contient exactement un objet et vous contrôlez précisément ce que vous enregistrez et chargez.

# Create an object to save
result_list <- list(
  model   = 'linear_regression',
  r2      = 0.87,
  rmse    = 12.4,
  created = Sys.time()
)

# Save to disk
tmp_rds <- tempfile(fileext = '.rds')
saveRDS(result_list, file = tmp_rds)
cat('Saved to:', tmp_rds, '\n')

# Load it back (even in a fresh session)
loaded <- readRDS(tmp_rds)
cat('R-squared:', loaded$r2)

readRDS() — Restaurer un objet unique

readRDS() désérialise un fichier .rds pour le reconvertir en objet R. Contrairement à load(), la valeur renvoyée doit être affectée à un nom — vous pouvez donc charger le même fichier sous des noms différents dans différentes parties de votre code.

# Suppose model_results.rds was saved earlier
tmp <- tempfile(fileext = '.rds')
saveRDS(list(coef = c(1.2, 3.4), n = 100), tmp)

# Load with a meaningful name:
model_output <- readRDS(tmp)
cat('Coefficients:', model_output$coef, '\n')
cat('Sample size:', model_output$n, '\n')

# Key advantage over load():
# With load(), the name is baked into the file.
# With readRDS(), YOU choose the name on load.
cat('readRDS gives you naming control')

save() et load() — Plusieurs objets

save() sérialise un ou plusieurs objets nommés dans un fichier .RData. load() les restaure — mais les noms d’origine sont automatiquement rétablis, ce qui peut écraser silencieusement des objets existants. Utilisez ces fonctions avec prudence.

# Save multiple objects at once
scores <- c(85, 92, 78)
labels <- c('Alice', 'Bob', 'Carol')

tmp_rdata <- tempfile(fileext = '.RData')
save(scores, labels, file = tmp_rdata)
cat('Saved to:', tmp_rdata, '\n')

# Remove originals to simulate a new session
rm(scores, labels)
cat('Removed. Objects now:', length(ls()), '\n')

# Load restores original names automatically
load(tmp_rdata)
cat('Restored scores:', scores)

saveRDS et save — Quand utiliser chaque fonction

Utilisez saveRDS() pour les objets uniques lorsque vous souhaitez contrôler entièrement leur nom lors du chargement — c’est idéal pour les résultats de modèles, les jeux de données traités et les résultats mis en cache. Utilisez save() uniquement lorsque vous devez regrouper plusieurs objets nommés pour un flux de travail précis avec un collaborateur.

# saveRDS: one object, you name it on load
# saveRDS(my_model, 'outputs/model_v2.rds')
# m <- readRDS('outputs/model_v2.rds')  <- your name choice

# save: multiple objects, names fixed in the file
# save(model, validation_df, file = 'outputs/session.RData')
# load('outputs/session.RData')  <- restores 'model' and 'validation_df'

# Practical rule:
# saveRDS for caching single results
# save for snapshots shared between collaborators

cat('saveRDS is usually the better choice')

Vérifier et restaurer options()

Les options définies au cours d’une session ne persistent que pendant cette session. Pour garantir l’autonomie de votre script, définissez les options nécessaires au début et, si vous le souhaitez, restaurez les anciennes valeurs à la fin du script à l’aide de on.exit().

# Capture current options before changing
old_options <- options(scipen = 999, digits = 3)

# Use on.exit to restore them no matter what
on.exit(options(old_options), add = TRUE)

# Now do your work
cat(pi, '\n')           # 3.14
cat(1234567.89, '\n')   # 1234568 (no sci notation)

# When function or script exits, options are restored automatically
cat('Options will restore on exit')

Projets RStudio pour gérer l’espace de travail

Un projet RStudio (fichier .Rproj) définit automatiquement le répertoire de travail à la racine du projet, conserve un fichier .Rhistory distinct pour chaque projet et isole les options de session. C’est la méthode standard pour gérer des projets R autonomes.

# When you open a .Rproj file, RStudio automatically:
# 1. Sets working directory to the project root
# 2. Loads the project-specific .Rhistory
# 3. Optionally restores project .RData

# Best practice for new projects:
# File -> New Project -> New Directory -> New Project

# Your project structure then looks like:
# my_project/
#   my_project.Rproj
#   .Rprofile        (project-level options)
#   .Renviron        (project-level env vars)
#   R/               (scripts)
#   data/            (raw data)
#   output/          (results)

cat('RStudio Projects = clean workspaces')

Vérification rapide

Vous souhaitez enregistrer sur le disque une trame de données R unique appelée clean_data, afin de pouvoir la recharger dans un autre script sous le nom de variable de votre choix. Quelle fonction devez-vous utiliser ?

Gestion de l’espace de travail — Points essentiels

Un espace de travail R bien géré constitue le fondement d’une analyse reproductible :

  • .RData / .Rhistory — fichiers d’espace de travail enregistrés automatiquement (désactivez l’enregistrement automatique !)
  • rm(list = ls()) — supprimer tous les objets pour repartir sur une base vierge
  • options(scipen = 999, digits = 4) — contrôler le formatage des nombres
  • .Renviron — stocker les clés d’API et les chemins en tant que variables d’environnement
  • saveRDS(obj, 'file.rds') — mettre en cache un objet unique
  • readRDS('file.rds') — restaurer avec votre propre nom
  • save(a, b, file = 'session.RData') — regrouper plusieurs objets
  • load('session.RData') — restaurer tous les objets regroupés
  • Utilisez les projets RStudio pour gérer automatiquement le répertoire de travail
# Typical script header for clean, reproducible analysis:
rm(list = ls())                         # clean workspace
options(scipen = 999, digits = 4)       # formatting

# Load secrets from .Renviron:
db_url <- Sys.getenv('DATABASE_URL')

# Load cached data if available:
cache_file <- file.path('cache', 'processed_data.rds')
if (file.exists(cache_file)) {
  df <- readRDS(cache_file)
  cat('Loaded from cache\n')
} else {
  cat('Cache not found, run data_prep.R first\n')
}

cat('Workspace ready')

Questions Fréquemment Posées

La leçon « Projets R et gestion de l’espace de travail » est-elle gratuite ?

Oui — le texte complet de « Projets R et gestion de l’espace de travail » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours R Academy, passe à CoddyKit PRO. Le cours R Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Projets R et gestion de l’espace de travail » ?

Créez des projets RStudio et gérez .RData, .Rhistory et .Renviron. Tu pratiques R Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer R Academy ?

Aucune expérience préalable n'est requise. R Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Projets R et gestion de l’espace de travail » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon R Academy ?

Oui. Chaque leçon R Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Utiliser source() pour charger des scripts
  2. Commentaires, style et lisibilité
  3. Répertoires de travail et chemins de fichiers
  4. Projets R et gestion de l’espace de travail
← Retour à R Academy