Ich möchte eine Liste von programmatisch ausgewählten Funktionen auf jede Spalte eines Datenrahmens anwenden mit dplyr
. Zur Veranschaulichung, hier ist meine Liste von Funktionen:
Ich dachte, das würde funktionieren:
%Vor% basierend auf ?funs_
, das die Argumente angibt, sollte unter anderem sein:
Eine Liste von Funktionen, die durch ... angegeben sind. Die Funktion selbst, bedeutet
Aber das scheitert mit einem Fehler:
%Vor% Es scheint, dass funs_
tatsächlich eine Liste von Symbolen erwartet, die Funktionen entsprechen, die in der entsprechenden Umgebung definiert sind, anstelle von tatsächlichen Funktionen. In meiner Anwendung bekomme ich allerdings nur die Funktionen, nicht ihre Symbolnamen (außerdem könnten die Funktionen durchaus anonym sein).
Gibt es eine Möglichkeit, die eigentlichen Funktionen an summarise_each
mit dplyr
zu übergeben? Hinweis Ich suche speziell nach einer dplyr
Antwort, da ich weiß, wie ich dieses Problem mit anderen Tools lösen kann.
Wenn fun_list
eine Liste von Funktionen ist, können Sie sie in eine Liste von "faulen Objekten" konvertieren, bevor Sie sie in dplyr-Funktionen verwenden.
oder
%Vor%Aber ich bin mir nicht sicher, ob das eine 100% wasserdichte Methode ist.
Basierend auf Kommentaren (um eine Funktion pro Spalte zu haben):
%Vor% Die Idee ist, summarise_each_
zu verwenden, aber nicht mit einer Liste von Funktionen, sondern mit einem
einzelne Versand -Funktion. Diese Funktion nimmt eine Variable, findet das Recht
Funktion aus original fun_list (durch seinen Namen!) und verwendet die Variable als Eingabe.
Die Lösung funktioniert, wenn die Namen der Funktionsliste übereinstimmen die Namen der Variablen.
Es ist auch möglich, Versand- und Funktionsliste dynamisch zu definieren (in diesem Fall) die Umgebung ist nicht global):
%Vor%