R: Angeben einer Zeichenfolge als Argument einer Funktion, die eine andere Funktion aufruft

8

Dies ist eine Frage bezüglich der Codierung in R.

Das Beispiel, das ich anbiete, ist didaktisch. Angenommen, ich habe Funktionen namens 'func1' und 'func2', wo jeder zwei Argumente (sagen wir Skalare) hat. Ich möchte eine andere Funktion 'applyfunction' angeben, die drei Argumente hat: die letzte Nummer der zu verwendenden Funktion ('1' oder '2') und die zwei Argumente für die Funktion. Zum Beispiel möchte ich so etwas tun (was natürlich nicht funktioniert):

applyfunction(1,2,3) , wo es effektiv func1(2,3) und

ausführen würde

applyfunction(2,9,43) , wo es effektiv func2(9,43) ausführen würde.

Irgendwelche Ideen?

Beste, DB

    
David Burk 10.02.2011, 16:31
quelle

5 Antworten

7

Sie können sich do.call() ansehen, die eine Funktion mit in einer Liste angegebenen Argumenten aufruft. Es ist nicht schwer, einen Wrapper dafür zu schreiben, der genau das tut, was Sie wollen.

%Vor%

EDIT: Ein Wrapper wäre:

%Vor%     
Sacha Epskamp 10.02.2011 16:58
quelle
6

Hier ist eine andere Alternative. Sie können der switch -Liste weitere Funktionen hinzufügen.

%Vor%     
Joshua Ulrich 10.02.2011 17:15
quelle
5

Wenn Sie wirklich wollen, dass es durch die Zahlen gemacht wird:

%Vor%

Verwendet get und paste, um die einem Namen zugeordnete Funktion zu erhalten.

    
Spacedman 10.02.2011 17:34
quelle
0

Wie wäre es mit einer der Funktionsvariablen als Schalter?

%Vor%

Und Sie können die gleiche Funktion verwenden, wobei der Schalter die Variable "x" ist:

%Vor%     
Brandon Bertelsen 10.02.2011 20:03
quelle
0

Hier eine Alternative zum Wechseln oder Einfügen, verwenden Sie einfach die Indizierung, um aus einer Liste auszuwählen:

%Vor%     
42- 10.02.2011 21:35
quelle

Tags und Links