Automatische Zusammenfassung nach Faktorvariable in R erstellen

11

Ich habe einen Datenrahmen wie den folgenden:

   case simulation temp plank oxygen
1     1          1    8     7     11
2     2          1   16    10     15
...
17   17          2   26    12     17
18   18          2   15     8     12
19   19          2   28    11     21
20   20          2   24     6     14

Ich möchte Zusammenfassungen, die nach den Ebenen der Simulationsvariablen aufgeteilt sind. Zum Beispiel möchte ich den Mittelwert tempfür Simulation == 1 und Simulation == 2 und den gleichen für Standardabweichung.

Im Moment verwende ich den folgenden Code, was ziemlich schrecklich ist:

df <- read.csv("data.csv")
attach(df)

# Create subset variables
temp1 = subset(temp, simulation==1)
temp2 = subset(temp, simulation==2)

plank1 = subset(plank, simulation==1)
plank2 = subset(plank, simulation==2)

oxygen1 = subset(oxygen, simulation==1)
oxygen2 = subset(oxygen, simulation==2)

print(sd(temp1))
print(sd(temp2))
print(sd(plank1))
print(sd(plank2))

Ich bin mir sicher, dass es in R einen automatischen Weg geben muss, aber ich kann ihn nicht finden. Ich habe es versucht summary(df ~ simulation), aber das bringt nichts Nützliches hervor.

robintw
quelle

Antworten:

17

Überprüfen Sie die by()oder tapply()Funktionen. Grundsätzlich,

tapply(y, g, mean)

gibt Ihnen den Mittelwert von ydurch Ebenen von g. Wenn Sie einen data.frame aus den resultierenden aggregierten Kennzahlen erhalten möchten, verwenden Sie aggregate().

Eine ausgefeiltere Lösung ist über die summary.formula()Funktion im Hmisc- Paket verfügbar .

chl
quelle
3

Das Paket doByverfügt über eine summaryByFunktion mit einer formelbasierten Syntax, wie Sie sie ausprobiert haben.

Ich denke auch, dass diese Frage beim Stackexchange besser gestellt worden wäre.

Fabianer
quelle
Vielen Dank. Ich werde mir das Paket ansehen. Das ist Stackexchange, nicht wahr?
Robintw
1
Ich denke, Fabians meinten Stackoverflow: stackoverflow.com, das für die R-Programmierung ist. Wie mache ich etwas in R-Fragen ? In diesem Ort geht es allgemeiner um Statistiken. Die beiden können jedoch viel mischen.
Monica wieder herstellen - G. Simpson