R Dplyr mutieren, ist die Berechnung der Standardabweichung für jede Zeile

Ich versuche zu berechnen, den Mittelwert und die Standardabweichung von bestimmten Spalten in einem data frame, und kehren Sie diese Werte für neue Spalten in der Daten-frame. Ich kann diese arbeiten für meine:

library(dplyr)
mtcars = mutate(mtcars, mean=(hp+drat+wt)/3)

Jedoch, wenn ich versuche, das gleiche für die Standardabweichung, ich habe ein Problem, denn ich kann nicht fest die Gleichung wie ich für meine, sehr leicht. So, ich versuche um eine Funktion zu verwenden, wie folgt:

mtcars = mutate(mtcars, mean=(hp+drat+wt)/3, stdev = sd(hp,drat,wt))

Resultieren in der Fehlermeldung "Error in sd(PS, verflixt, wt) : unused argument (wt)". Wie kann ich meine richtige syntax? Danke.

  • Um zu berechnen, die bedeuten, dass Sie tatsächlich schrieb die Formel, sondern um zu berechnen, SD man verwendet die eingebaute sd Funktion einige seltsame Art und Weise. Sieht es nicht inkonsistent, Sie?
  • Ja, das ist der Grund, warum ich sagte "wenn ich versuche, das gleiche für die Standardabweichung, ich habe ein Problem, denn ich kann nicht fest die Gleichung wie ich für meine, sehr leicht. So, ich versuche um eine Funktion zu verwenden." Ich bin nicht sicher, warum Sie denken, dass ich verwendet die sd-Funktion auf seltsame Weise, obwohl ich sicher bin, das ist wahr. Die sd-Funktion scheint in einem Vektor von numerischen, zum Beispiel sd(c(3,5,6)). Obwohl ich sicher bin, dass es für Sie offensichtlich, warum ist das, was ich Tue, nicht richtig ist? Danke.
  • Vielleicht das, was @DavidArenburg ist darauf hindeutet, ist, dass Ihr Anruf an sd ist falsch, was es ist, in eine allgemein falsche Art und Weise. Zum Beispiel, versuchen Sie sd(1,2,3), dann Lesen Sie ?sd und sehen (1), es beschreibt das erste argument als "x: ein numerischer Vektor", und (2) es ist insbesondere nicht enthalten "..." (Ellipsen, die erlauben würde, für eine beliebige Anzahl von Argumenten, wie Sie sind, providing).
  • Mit + zu bekommen, bedeuten möglicherweise nicht erwartungsgemäß, wenn es NA ' s, In die mean und rowMeans ist, gibt es Optionen für das entfernen von NA, dh. na.rm=TRUE.
InformationsquelleAutor | 2015-04-11
Schreibe einen Kommentar