Ich versuche, die summarize-Funktion in dplyr zu verwenden, um zusammenfassende Statistiken mithilfe einer Zwei-Argument-Funktion zu berechnen, die einen Tabellen- und Feldnamen aus einer verbundenen Datenbank übergibt. Leider, sobald ich die summarize-Funktion mit einer anderen Funktion umbringe, sind die Ergebnisse nicht korrekt. Die Endtabelle ist ein Datenrahmen, der nicht durch jede Zeile iteriert. Ich werde die Eingabe/Ausgabe unten zeigen:Übergabe von Argumenten an dplyr summarize Funktion
Zusammenfassung Statistikfunktion Bibliothek (dplyr)
data<-iris
data<- group_by(.data = data,Species)
SummaryStatistics <- function(table, field){
table %>%
summarise(count = n(),
min = min(table[[field]], na.rm = T),
mean = mean(table[[field]], na.rm = T, trim=0.05),
median = median(table[[field]], na.rm = T))
}
SummaryStatistics(data, "Sepal.Length")
Ausgabetabelle-falsch, es ist nur die gleiche Berechnung zu wiederholen
Species count min mean median
1 setosa 50 4.3 5.820588 5.8
2 versicolor 50 4.3 5.820588 5.8
3 virginica 50 4.3 5.820588 5.8
Korrekte Tabelle/gewünschtes Ergebnis - - So sollte der Tisch aussehen. Wenn ich die summarize-Funktion über die Wrapper-Funktion ausführe, ist dies, was es produziert.
Species count min mean median
1 setosa 50 4.3 5.002174 5.0
2 versicolor 50 4.9 5.934783 5.9
3 virginica 50 4.9 6.593478 6.5
Ich hoffe, dass dies leicht zu verstehen ist. Ich kann einfach nicht verstehen, warum die Statistik für die Zusammenfassung außerhalb der Wrapper-Funktion perfekt funktioniert, aber sobald ich ihr Argumente übergebe, berechnet sie für jede Zeile dasselbe. Jede Hilfe würde sehr geschätzt werden.
Danke, Kev
Schwer zu diagnostizieren, ohne zu wissen, wie Sie die Wrapper-Funktion verwenden. Aber bei einer Vermutung weiß 'summarize', wenn es einmal innerhalb der Wrapper-Funktion ist, möglicherweise nicht über die Gruppierungsfaktoren, die in der Berechnung verwendet werden. So würde es die gleiche Zusammenfassung für alle Zeilen zurückgeben. – jdobres
@jdobres Ich werde die Wrapper-Funktion hinzufügen. Das tut mir leid. – AlphaKevy
Sie müssen die Standardauswertung verwenden. Lesen Sie die 'dplyr'-Vignette für eine bessere Idee. –