2016-02-20 1 views
0

J'ai un fichier sur mon ordinateur que je veux exécuter à partir de la ligne de commande. Ce fichier aurait quelque chose qui se passe en son sein + une fonction. Par exemple, j'ai une variable globale, start_value = 10, puis j'appelle une fonction plus bas dans le script Rscript.Comment transmettre les paramètres de fonction d'un fichier R lors d'une exécution à partir du terminal?

Je veux lancer ce script en passant des paramètres

J'ai essayé de trouver en ligne comment faire cela, mais je n'ai pas eu de chance.
Je reçois cette erreur:

Error in help_function(x, y) : object 'x' not found 

Lors de l'exécution comme ceci:

Rscript helpme.R 100 10 

-

##?? saw this someplaces when searching, but couldn't get it to work 
args = commandArgs(trailingOnly=TRUE) 

starting_value=10 

help_function = function(x,y){ 


    division =x/y 
    answer=starting_value + division 
return(answer) 
} 

help_function(x,y) 
+1

Vous devez choisir les arguments de 'args', et de les traiter si nécessaire, [comme par exemple ici] (http://stackoverflow.com/questions/14167178/passing-command-line-arguments-à-r-cmd-batch/14167417 # 14167417). –

+0

plutôt évident que R ne peut pas trouver «x» si vous ne le définissez jamais dans votre script ... –

Répondre

0

commandArgs fonction retourne un vecteur de caractère avec les arguments passés à la ligne de commande (trailingOnly = TRUE supprime la partie "RScript helpme.R").

Dans votre cas:

args <- commandArgs(trailingOnly = TRUE) 

# parse your command line arguments 
x <- as.numeric(args[1]) # args[1] contains "100" 
y <- as.numeric(args[2]) # args[2] contains "10" 

# ...continue with your script here