Funktion zum Anwenden beliebiger Funktionen in R

7

Wie würde man in R die Funktion apply.func(func, arg.list) implementieren, die eine beliebige Funktion func und eine geeignete Liste arg.list als Argumente übernimmt und das Ergebnis des Aufrufs von func mit den Argumenten in arg.list zurückgibt. . ZB

%Vor%

entspricht

%Vor%

Danke!

P.S. FWIW, das Python-Äquivalent von apply.func wäre etwas wie

%Vor%

oder

%Vor%

oder eine Variante davon.

    
kjo 31.05.2011, 18:53
quelle

2 Antworten

17

Ich denke do.call ist was du suchst. Sie können darüber über ?do.call lesen.

Das klassische Beispiel dafür, wie Leute do.call verwenden, ist rbind Datenrahmen oder Matrizen zusammen:

%Vor%

Hier ist ein weiteres ziemlich triviales Beispiel mit sum :

%Vor%     
joran 31.05.2011, 19:00
quelle
8

R erlaubt Funktionen als Argumente an Funktionen übergeben zu werden. Dies bedeutet, dass Sie apply.func wie folgt definieren können (wobei f eine Funktion und ... alle anderen Parameter angibt:

%Vor%

Sie können dann apply.func verwenden und eine Funktion angeben, bei der die Parameter sinnvoll sind:

%Vor%

Beachten Sie jedoch, dass die folgenden Ergebnisse möglicherweise nicht zu den erwarteten Ergebnissen führen, da mean einen Vektor als Argument verwendet:

%Vor%

Beachten Sie, dass es auch eine Basis-R-Funktion namens do.call gibt, die praktisch dasselbe tut.

    
Andrie 31.05.2011 19:16
quelle

Tags und Links