it-swarm.com.de

Wie erhalten Sie Mittelwerte, Medianwerte und andere Statistiken über die gesamte Matrix, das Array oder den Datenrahmen?

Ich weiß, dass dies eine grundlegende Frage ist, aber aus irgendeinem merkwürdigen Grund kann ich keine Antwort finden.

Wie kann ich grundlegende statistische Funktionen wie Mittelwert, Mittelwert usw. über das gesamte Array, die Matrix oder den Datenrahmen anwenden, um eindeutige Antworten zu erhalten und nicht einen Vektor über Zeilen oder Spalten

27
user2760

Da dies ein gutes Ergebnis ist, werde ich dies etwas umfassender behandeln, um das 'usw.' mit einzubeziehen. Stück zusätzlich zu mean und median.

  1. Für eine Matrix oder ein Array wird, wie die anderen angegeben haben, mean und median einen einzelnen Wert zurückgeben. var berechnet jedoch die Kovarianzen zwischen den Spalten einer zweidimensionalen Matrix. Interessanterweise gibt var für ein mehrdimensionales Array einen einzigen Wert zurück. sd auf einer 2-D-Matrix funktioniert, wird jedoch als veraltet eingestuft und gibt die Standardabweichung der Spalten zurück. Noch besser: mad gibt einen einzelnen Wert in einer zweidimensionalen Matrix und einem mehrdimensionalen Array zurück. Wenn Sie wollen einen einzelnen Wert zurückgeben, ist der sicherste Weg, zuerst as.vector() zu erzwingen. Noch Spaß haben?

  2. Für einen data.frame ist mean veraltet, wirkt sich jedoch erneut auf die Spalten aus. median erfordert, dass Sie zuerst einen Vektor oder unlist zwingen. Wie zuvor gibt var die Kovarianzen zurück, und sd ist wieder veraltet, gibt jedoch die Standardabweichung der Spalten zurück. mad erfordert, dass Sie einen Vektor oder eine unlist zwingen. Im Allgemeinen für einen data.frame, wenn Sie möchten, dass auf alle Werte etwas wirkt, werden Sie im Allgemeinen nur unlist zuerst.

Edit: Aktuelle Nachrichten (): In R 3.0.0 ist mean.data.frame defuntctified:

o   mean() for data frames and sd() for data frames and matrices are
defunct.
23
joran

Standardmäßig arbeiten mean und median usw. über ein gesamtes Array oder eine Matrix.

Z.B.:

# array:
m <- array(runif(100),dim=c(10,10))
mean(m) # returns *one* value.

# matrix:
mean(as.matrix(m)) # same as before

Für Datenrahmen können Sie sie zuerst in eine Matrix zwingen (der Grund, warum dies standardmäßig über Spalten erfolgt, ist, dass ein Datenrahmen Spalten mit Strings enthalten kann, deren Mittelwert Sie nicht annehmen können)

# data frame
mdf <- as.data.frame(m)
# mean(mdf) returns column means
mean( as.matrix(mdf) ) # one value.

Achten Sie nur darauf, dass Ihr Datenrahmen alle numerischen Spalten enthält, bevor Sie zur Matrix wechseln. Oder schließen Sie die nicht numerischen aus.

13

Sie können library dplyr über install.packages ('dplyr') und dann verwenden 

dataframe.mean <- dataframe %>%
  summarise_all(mean) # replace for median
0
tcratius