Deux façons d'utiliser R : console vs script
R possède une console interactive (un REPL - read, evaluate, print, loop) : vous tapez une expression, R répond immédiatement. Taper R dans un terminal, ou regarder le panneau du bas de RStudio, vous donne une invite > où chaque ligne s'exécute dès que vous appuyez sur Entrée. La console est le lieu de l'exploration - triturer les données, tester une ligne, regarder le résultat.
Un script R n'est qu'un fichier texte brut de code R, enregistré avec l'extension .R. Les scripts sont là où vit l'analyse - une recette reproductible que n'importe qui (y compris votre futur vous) peut exécuter de haut en bas en obtenant le même résultat.
Un script n'a rien d'exotique. En voici un complet - exécutez-le :
Tout ce qui suit concerne les différentes façons de donner un fichier comme celui-là à R.
Rscript : exécuter un fichier en ligne de commande
R installe un outil en ligne de commande appelé Rscript, conçu exactement pour ça. Dans un terminal, dans le dossier contenant votre fichier :
Rscript summary.R
R démarre, exécute le fichier de haut en bas, affiche ce que le script affiche, puis se termine. C'est le cheval de trait de l'automatisation - tâches cron, pipelines de données, serveurs, CI - partout où le code tourne sans humain pour le regarder.
Un comportement surprend tout le monde une fois : à la console, taper une expression nue comme avg affiche sa valeur automatiquement. Sous Rscript, une expression nue à l'intérieur d'une fonction ou d'une boucle peut ne rien afficher - c'est pourquoi les scripts disent explicitement ce qu'ils veulent avec des appels cat() ou print(). Prenez cette habitude tôt.
source() : exécuter un fichier depuis R
Déjà dans une session R et envie d'exécuter un fichier ? C'est source() :
source("summary.R")
Chaque ligne du fichier s'exécute dans votre session courante, et tout ce que le script définit - variables, fonctions - reste disponible ensuite. C'est là tout l'intérêt : source() est la façon de charger vos propres fonctions utilitaires dans une session interactive.
Par défaut, source() s'exécute silencieusement, hormis les sorties explicites. Pour le voir travailler, faites afficher chaque ligne au moment de son exécution :
source("summary.R", echo = TRUE)
Notez le chemin relatif : "summary.R" signifie « dans le répertoire de travail courant », et son emplacement dépend de la façon dont vous avez démarré R. Quand source() ou read.csv() ne trouve mystérieusement pas un fichier qui est juste là, le répertoire de travail est presque toujours le coupable - voir répertoire de travail.
Exécuter des scripts dans RStudio
RStudio vous offre les deux modes avec deux commandes, et la distinction mérite d'être intériorisée :
- Run (Ctrl+Entrée, Cmd+Entrée sur macOS) - exécute la ligne courante ou la sélection surlignée dans la console. C'est la vitesse exploration : écrire une ligne, l'exécuter, regarder, ajuster.
- Source (le bouton Source, ou Ctrl/Cmd+Maj+S) - exécute le fichier entier, exactement comme
source()à la console.
Le piège du Run ligne par ligne, c'est que votre session console accumule de l'état - des variables issues de lignes que vous avez ensuite modifiées ou supprimées sont toujours vivantes, si bien que le script « fonctionne » pour vous et échoue pour tout le monde. Le test honnête d'un script, c'est Source dans une session fraîche (Session → Restart R, puis Source). S'il y survit, il est reproductible.
Rendre un script exécutable (macOS / Linux)
Sur les systèmes de type Unix, vous pouvez transformer un script R en commande à part entière. Mettez une ligne shebang tout en haut du fichier :
#!/usr/bin/env Rscript
cat("I am a self-running R script\n")
Puis marquez-le exécutable une fois, et lancez-le directement :
chmod +x summary.R
./summary.R
Le shebang indique au shell quel interpréteur exécute le fichier ; env Rscript trouve Rscript où qu'il se trouve dans le PATH de la machine. Comme la ligne commence par #, R lui-même la lit comme un commentaire et l'ignore.
Passer des arguments à un script
Les vrais scripts prennent des entrées - un nom de fichier, une date, un seuil - passées après le nom du script :
Rscript report.R sales.csv 2026
Dans le script, commandArgs(trailingOnly = TRUE) renvoie vos arguments sous forme de vecteur de chaînes (trailingOnly = TRUE élimine les arguments internes de l'interpréteur - vous le voulez pratiquement toujours) :
# report.R
args <- commandArgs(trailingOnly = TRUE)
input_file <- args[1]
year <- as.numeric(args[2])
cat("Reading:", input_file, "\n")
cat("Filtering to year:", year, "\n")
Tout arrive sous forme de texte - "2026", pas 2026 - convertissez donc avec as.numeric() avant de faire des calculs. On peut simuler la logique d'analyse sous une forme exécutable :
Lequel utiliser ?
- Explorer des données, tester des idées → la console, ou Run dans RStudio.
- Exécuter toute votre analyse → Source dans RStudio, ou
Rscriptdans un terminal. - Charger vos fonctions utilitaires dans une session →
source("helpers.R"). - Automatisation, planificateurs, pipelines →
Rscript, aveccommandArgs()pour les entrées.
La syntaxe de ce qui va dans ces fichiers est la prochaine leçon - voir syntaxe R.
Ce qu'il faut retenir
- La console sert à explorer ; les fichiers de script
.Rservent à l'analyse reproductible. Rscript file.Rexécute un script en ligne de commande ;source("file.R")l'exécute dans une session (ajoutezecho = TRUEpour observer).- Dans RStudio, Run exécute une ligne ; Source exécute le fichier - et Source-dans-une-session-fraîche est le vrai test de reproductibilité.
#!/usr/bin/env Rscript+chmod +xrend un script directement exécutable ;commandArgs(trailingOnly = TRUE)lit ses arguments sous forme de texte.
Prochaine étape : la syntaxe de R - l'affectation avec <-, les appels de fonction et la règle « tout est vecteur ».
Questions fréquentes
Comment exécuter un script R en ligne de commande ?
Utilisez la commande Rscript fournie avec R : Rscript analysis.R. Elle exécute le fichier du début à la fin et affiche tout ce que le script affiche. C'est la façon standard d'exécuter R dans les tâches planifiées, les pipelines et les serveurs.
Quelle est la différence entre Run et Source dans RStudio ?
Run (Ctrl/Cmd+Entrée) n'exécute que la ligne courante ou la sélection dans la console - idéal pour explorer. Source exécute le fichier entier d'un coup, comme le ferait Rscript. Sourcer votre script depuis une session propre est le vrai test qu'il fonctionne de haut en bas.
Que fait source() en R ?
source("script.R") lit un fichier et exécute chaque ligne dans votre session R courante, de sorte que les variables et fonctions qu'il définit deviennent disponibles. Ajoutez echo = TRUE pour afficher aussi chaque ligne au fur et à mesure.
Comment passer des arguments à un script R ?
Exécutez Rscript script.R valeur1 valeur2, puis lisez-les dans le script avec args <- commandArgs(trailingOnly = TRUE). La partie trailingOnly = TRUE retire les arguments internes de l'interpréteur et ne garde que les vôtres. Tout arrive sous forme de texte, convertissez donc les nombres avec as.numeric().