2016-04-20 8 views
2

Ich habe ein rscript, das so aussieht (es ist anders, aber das ist für Reproduzierbarkeit :)).Eingabeparameter beim Aufruf eines Skripts in E

#createOutputFunction.R 

createOutput <- function(parameter1, parameter2){ 

    x <- parameter1 + parameter2 
    print(x) 

} 

Das funktioniert. Aber die Sache ist, dass ich die Parameter aufrufen möchte, um die Funktion auszuführen. So wollen grundsätzlich in der Lage sein, zu tun:

source("createOutputFunction.R") and input the parameters directly 

so dass mit nur sourceOutputFunction Aufruf i einen anderen Ausgang bekommen können, abhängig von den Parametern I eingeben.

Irgendwelche Gedanken darüber, wie ich das zum Laufen bringen kann?

+0

Der Befehl source fügt der Benutzerumgebung nur die Funktion createOutput hinzu. Sie können die Funktion dennoch ausführen, indem Sie den angegebenen Parameter 1 und Parameter 2 in die createOutput-Funktion eingeben, z. 'createOutput (Parameter1 = x, Parameter2 = y)' –

+0

@AdamQuek Ich weiß, aber lassen Sie mich sagen, ich möchte es in einem Job Cronjob/Windows-Zeitpläne ausführen ... Wie würde ich das tun? –

Antwort

0

Try this:

# main.R file 

source("createOutputFunction.R") 
args <- commandArgs(trailingOnly = TRUE) 

createOutput(args[1], args[2]) 

# end of main.R file 

Jetzt Rscript mit Eingabeargumente ausführen, die auf main.R geben wird.

Rscript main.R 1 2 

Dies sollte 3 ausgedruckt werden.

Verwandte Themen