Les exemples ci-dessous montrent deux manières d'exécuter du code R dans un script shell. Les deux exemples définiront également des fonctions sans les exécuter, si les scripts sont chargés dans une session R interactive via la fonction source().
Le premier exemple vous permet de donner des arguments comme vous le feriez pour tout autre shell script, mais ne passera pas supplémentaires R-options R (parce que RSCRIPT donne « --args » à R comme l'un des arguments) .
Le deuxième exemple vous permet de donner des options R supplémentaires, mais génère (inoffensif) des messages d'avertissement à moins que vous ne donniez "-args" comme l'un des arguments de script . Cette version est préférable d'éviter à moins que vous ayez des exigences spéciales.
prototype Rscript.r
#!/usr/bin/env Rscript
# Prototype R script for use at command line in Linux, Mac OS X, UNIX
# References:
# Manual "A Introduction to R", available via help.start() from the R Console
# Appendix "B.1 Invoking R from the command line" in "A Inroduction to R",
showArguments <- function(argv) {
print(argv)
0
}
if (! interactive()) {
# set some error return codes
SCRIPT_ERROR <- 10 # see documentation for quit()
SCRIPT_ARG_ERROR <- SCRIPT_ERROR + 1
# Define ARGV as script path concatenated to script arguments
ARGV <- commandArgs(FALSE) # start with all the arguments given to R
scriptPath <- sub("^--file=", "", grep("^--file=", ARGV, value=TRUE)) [[1]]
ARGV <- c(scriptPath, commandArgs(TRUE))
if (length(ARGV) < 2) {
cat(file=stderr(), sep="",
"Usage: ", ARGV[[1]], " [ options ] item ...\n",
" Do something with item\n",
" See script for details\n")
quit(save="no", status=SCRIPT_ARG_ERROR)
}
quit(save="no", status=showArguments(ARGV))
}
prototype shellscript.r
#!/usr/bin/env R --slave --vanilla --quiet -f
# Prototype R script for use at command line in Linux, Mac OS X, UNIX
# References:
# Manual "A Introduction to R", available via help.start() from the R Console
# Appendix "B.1 Invoking R from the command line" in "A Inroduction to R",
showArguments <- function(argv) {
print(argv)
0
}
if (! interactive()) {
# set some error return codes
SCRIPT_ERROR <- 10 # see documentation for quit()
SCRIPT_ARG_ERROR <- SCRIPT_ERROR + 1
# Define ARGV as the arguments given to this script (after argument “-f”)
ARGV <- commandArgs(FALSE) # start with all the arguments given to R
ARGV <- ARGV[(grep("-f", ARGV) [[1]] + 1):length(ARGV)]
if (any(grepl("--args", ARGV))) { # remove arguments intended only for R
ARGV <- c(ARGV[[1]], commandArgs(TRUE))
}
if (length(ARGV) < 2) {
cat(file=stderr(), sep="",
"Usage: ", ARGV[[1]], " [ R_options ] --args [ options ] item ...\n",
" Do something with item\n",
" See script for details\n")
quit(save="no", status=SCRIPT_ARG_ERROR)
}
quit(save="no", status=showArguments(ARGV))
}
Peut-être que vous devriez utiliser R pour Linux? –
Désolé pour la question simple, quelle est la différence entre linux et unix R? Je crois que nous pouvons courir R dans unix – SHRram
Qu'avez-vous essayé? R devrait s'installer correctement sous Unix ou Linux, et vous pouvez y accéder via la ligne de commande avec 'R'. Vous pouvez également regarder quelques-unes des excellentes guis disponibles (je suggère [RStudio] (http://www.rstudio.org) comme un excellent point de départ). Enfin, exécuter un script peut être fait facilement. Vous utilisez souvent 'R CMD BATCH script.R' mais il existe de nombreuses alternatives et options qui sont bien documentées. – Justin