Hallo Gregor,
Richtige Ergebnisse kann ich gar nicht erzielen, wenn ich die richtigen Daten nicht habe.
gregorboehme1980 hat geschrieben: ↑Mo Jan 02, 2023 12:16 pm Was macht "each" und was versteckt sich hinter den Zahlen bei "sample"?
Da Du zwar ungefähr beschrieben hast, wie die Daten organisiert sein sollen aber selbst keine Daten geliefert hast, habe ich den Zufallsgenerator bemüht, Beispieldaten zu erzeugen, um das weitere Vorgehen zu zeigen.
Code: Alles auswählen
bsp <- data.frame(bereich = rep(c("A", "B", "C"), each = 3),
anzahl = sample(0:5, 9, 1))[3:8,]
Mit den dort benutzten Funktionen rep und sample solltest Du Dich im weiteren Verlauf unbedingt auseinander setzen. Für's Erste brauchst Du das nicht im Detail zu verstehen, denn Du sollst das ja mit tatsächlichen Daten mit tatsächlichen Spaltennamen und so weiter umsetzen. Für's Erste kommt da ein kleiner Dataframe heraus, der so aussehen kann (wenn auch jedes Mal mit anderen Zahlen):
Code: Alles auswählen
#> bereich anzahl
#> 3 A 2
#> 4 B 2
#> 5 B 0
#> 6 B 0
#> 7 C 2
#> 8 C 0
Es gibt also eine Spalte Bereich, in der die Buchstaben A, B und C zur Benennung von Bereichen stehen und eine Spalte anzahl, in der Zufallszahlen stehen. Wie Spalte 2 und Spalte 3 bei Dir wirklich heißen, kann ich ja nicht wissen.
Damit kündige ich an, dass ich von hier an zeigen will, wie Du die Mittelwerte von anzahl für jeden der Bereiche bestimmst.
Code: Alles auswählen
mw <- aggregate(anzahl ~ bereich, data = bsp, FUN = mean)
Die Funktion aggregate wird benutzt, um in der Tabelle "bsp" die Anzahl pro Bereich mit der Funktion mean zu aggregieren. Und so sieht man das Ergebnis dieses Funktionsaufrufes:
Code: Alles auswählen
print(mw)
#> bereich anzahl
#> 1 A 2.0000000
#> 2 B 0.6666667
#> 3 C 1.0000000
Die Funktion aggregate ist nur eine von vielen Möglichkeiten, Daten in R zu aggregieren. Wenn Du den Eindruk hast, dass sie hier für Dich sinnvoll ist, solltest Du Dich vielleicht mir ihr vertraut machen.
VG,
Bernhard