HOWTO · R

Exécuter un script R depuis la ligne de commande

Apprenez à lancer un script R depuis un terminal ou une invite de commandes avec Rscript, à lui transmettre des arguments, à planifier son exécution avec cron et à suivre ses changements avec Git.

Sur cette page

Pour exécuter un script R depuis un terminal ou une invite de commandes, enregistrez le code dans un fichier et lancez-le avec Rscript path/to/script.R. R doit être installé et votre shell doit pouvoir trouver Rscript via PATH ; sinon, indiquez le chemin complet de l’exécutable. Cette méthode est utile pour les analyses reproductibles, les scripts qui acceptent des entrées et les tâches planifiées.

Qu’est-ce que Rscript ?

Rscript est le programme en ligne de commande qui exécute du code R depuis un script ou une commande qui lui est transmise directement. Il convient aux tâches non interactives : les instructions se trouvent dans un fichier ou une commande, et le processus se termine lorsque le travail est fini. À l’inverse, une session R interactive permet de saisir des commandes et d’examiner les résultats au fur et à mesure.

L’installation de R inclut Rscript. Ouvrez un terminal sous macOS ou Linux, ou l’invite de commandes ou PowerShell sous Windows, puis vérifiez si la commande est disponible avec Rscript --version. Si le shell indique qu’il ne trouve pas la commande, installez R ou repérez l’exécutable fourni avec R et utilisez son chemin complet. Les répertoires d’installation varient selon le système d’exploitation et l’installation ; évitez donc de reprendre un chemin lié à une version précise depuis un autre ordinateur.

Exécuter un script R avec Rscript

Créez un fichier nommé mean.R contenant ce petit exemple. Il utilise les nombres fournis en ligne de commande lorsqu’il y en a, et un ensemble prédéfini dans le cas contraire. Vous pouvez donc l’exécuter tel quel ou l’adapter à d’autres valeurs.

args <- commandArgs(trailingOnly = TRUE)
numbers <- if (length(args) > 0) as.numeric(args) else c(1, 2, 3, 4, 5)
cat("Mean: ", mean(numbers), "\n", sep = "")

Avec les valeurs par défaut, le code utilise les nombres de 1 à 5 ; à l’inspection, il devrait afficher Mean: 3. L’étiquette Mean reste en anglais dans cet exemple inchangé. Cet exemple n’a pas été vérifié à l’exécution.

Exécutez le script depuis le répertoire qui contient le fichier avec Rscript mean.R. Pour le lancer depuis un autre répertoire, indiquez le chemin du script, par exemple Rscript /path/to/mean.R. Sous Windows, mettez entre guillemets un chemin qui contient des espaces, par exemple Rscript "C:/Users/Ada/My Scripts/mean.R" ; utilisez le format de chemin accepté par le shell ouvert. Si Rscript ne figure pas dans PATH, remplacez-le par le chemin complet de l’exécutable et gardez le chemin du script comme argument distinct.

Pour une expression courte qui ne nécessite pas de fichier, utilisez l’option -e dans un shell de type POSIX ou dans PowerShell, par exemple Rscript -e 'mean(iris$Sepal.Length)'. Cette forme entre apostrophes ne convient pas à l’invite de commandes Windows, qui traite les apostrophes comme des caractères littéraux ; dans ce cas, utilisez plutôt l’exemple avec un script enregistré ci-dessus. Le jeu de données iris est fourni dans une installation standard de R. Les options --help et --version demandent respectivement l’aide de la commande et les informations de version ; --verbose demande une sortie plus détaillée. Elles sont utiles pour vérifier les détails de l’appel ou diagnostiquer une exécution. -e commence par un seul tiret : toutes les options ne commencent donc pas par deux tirets.

Transmettre des arguments à un script R

Un script peut lire les valeurs placées après son nom de fichier avec commandArgs(trailingOnly = TRUE). L’exemple ci-dessus convertit chaque argument fourni en nombre, puis calcule leur moyenne. Par exemple, Rscript mean.R 10 20 30 transmet trois valeurs distinctes. Si une entrée contient elle-même des espaces, mettez-la entre guillemets dans le shell afin qu’elle soit reçue comme un seul argument. Précisez le format d’entrée attendu par le script et adaptez la conversion et la validation si les données ne sont pas numériques.

Planifier des scripts R avec cron

Sur les systèmes de type Unix, cron peut lancer un script selon un calendrier. Modifiez la crontab de votre utilisateur avec crontab -e, puis ajoutez une entrée telle que 0 2 * * * /usr/bin/Rscript /path/to/report.R pour demander une exécution quotidienne à 2 h, selon la configuration cron de la machine. Les chemins de l’exécutable et du script sont des exemples : utilisez ceux de l’ordinateur qui exécutera la tâche.

Les tâches planifiées peuvent démarrer dans un répertoire de travail et un environnement différents de ceux de votre shell interactif. Utilisez des chemins absolus pour l’exécutable, le script et les fichiers d’entrée ou de sortie. Si vous devez diagnostiquer les exécutions planifiées, prévoyez de capturer leur sortie ou leurs erreurs. Cron est une option de planification pour les systèmes de type Unix ; sous Windows, vous pouvez utiliser le Planificateur de tâches du système.

Gérer les versions des scripts R avec Git

Git peut suivre les modifications apportées aux scripts R et aux fichiers associés au projet, ce qui facilite l’examen des changements ou le retour à une version antérieure. Son utilisation est facultative : Git n’est pas nécessaire pour exécuter un script avec Rscript. Dans le répertoire d’un projet, initialisez un dépôt avec git init, ajoutez les fichiers à suivre avec git add, puis enregistrez un instantané avec git commit. Vérifiez le contenu du commit et évitez d’y ajouter des données générées ou des identifiants, sauf s’ils doivent faire partie de l’historique du projet.

Conclusion

Enregistrez votre code dans un fichier R, puis exécutez-le avec Rscript et le chemin du script. Vérifiez que R est installé et que votre shell peut accéder à l’exécutable, mettez les chemins entre guillemets si nécessaire et placez les valeurs d’entrée après le nom du fichier. Pour les tâches récurrentes, utilisez un planificateur avec des chemins adaptés à son environnement ; utilisez Git si vous souhaitez suivre les modifications apportées aux scripts.

FAQ

  1. Comment installer R et Rscript ?
    Installez R pour votre système d’exploitation en suivant les instructions d’installation correspondantes. Rscript est inclus avec R ; il n’est pas nécessaire de l’installer séparément pour cette méthode.

  2. Puis-je exécuter un script R sous Windows ?
    Oui. Utilisez l’invite de commandes ou PowerShell et lancez Rscript script.R si l’exécutable est disponible dans PATH. Sinon, appelez l’exécutable installé en indiquant son chemin complet. Selon les règles de citation du shell, mettez entre guillemets les chemins qui contiennent des espaces.

  3. Quelle est la différence entre Rscript et R ?
    Rscript sert à exécuter un script ou une expression depuis la ligne de commande. La commande R démarre généralement une session interactive, dans laquelle vous pouvez saisir des commandes et examiner les résultats pendant votre travail.

  4. Comment vérifier la version de Rscript installée ?
    Exécutez Rscript --version dans votre terminal ou votre invite de commandes. La commande doit être disponible dans PATH ou être appelée avec son chemin complet.

  5. Comment exécuter plusieurs scripts R les uns après les autres ?
    Dans un shell de type Unix, reliez les commandes avec &&, par exemple Rscript first.R && Rscript second.R. La seconde commande ne s’exécute que si la première réussit. Pour une séquence plus longue, placez les appels dans un script shell ou utilisez un autre planificateur adapté à votre système.