Liste der Funktionen mit dplyr :: summarize_each_ verwenden

8

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:

%Vor%

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.

    
BrodieG 01.04.2015, 22:22
quelle

1 Antwort

3

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.

%Vor%

oder

%Vor%

Aber ich bin mir nicht sicher, ob das eine 100% wasserdichte Methode ist.

Aktualisieren

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%     
bergant 02.04.2015, 13:53
quelle

Tags und Links