mein Problem zu erklären, ich habe folgende df erstellt:auf gleichen Werten in einer Spalte und Speichern der Ergebnisse in einer neuen Datenrahmen basierend Looping
hh_01 <- c(rep(1:4, each = 3), rep(5:10, each = 5))
vill <- c(rep(100, 12), rep(101, 30))
hh_02 <- c(2:4, 1, 3, 4, 1:2, 4, 1:3, 6:10, 5, 7:10, 5:6, 8:10, 5:7, 9:10, 5:8, 10, 5:9)
set.seed(1); dist <- abs(rnorm(42, mean = 0, sd = 1000))
df <- matrix(c(hh_01, vill, hh_02, dist), nrow = 42, ncol = 4)
colnames(df) <- c("hh_01", "vill", "hh_02", "dist")
df <- as.data.frame(df)
df
hh_01 vill hh_02 dist
1 1 100 2 1728.39791
2 1 100 3 979.05280
3 1 100 4 972.09301
4 2 100 1 461.72457
5 2 100 3 384.84236
6 2 100 4 523.10665
7 3 100 1 482.88891
8 3 100 2 218.27501
9 3 100 4 878.32424
10 4 100 1 41.75679
11 4 100 2 967.72103
12 4 100 3 661.80881
13 5 101 6 851.74364
14 5 101 7 852.48595
15 5 101 8 471.51824
16 5 101 9 862.90742
17 5 101 10 750.57410
18 6 101 5 1714.03797
19 6 101 7 93.43975
20 6 101 8 640.15912
21 6 101 9 601.66437
22 6 101 10 969.44271
23 7 101 5 77.95871
24 7 101 6 604.71114
25 7 101 8 169.18386
26 7 101 9 435.42663
27 7 101 10 604.22278
28 8 101 5 475.18935
29 8 101 6 13.09895
30 8 101 7 2873.04565
31 8 101 9 1019.03810
32 8 101 10 41.51445
33 9 101 5 914.63453
34 9 101 6 67.62432
35 9 101 7 85.45653
36 9 101 8 971.21044
37 9 101 10 2074.87280
38 10 101 5 98.43913
39 10 101 6 437.63773
40 10 101 7 620.47573
41 10 101 8 376.56226
42 10 101 9 1013.93106
Meine Aufgabe: für alle hh_01 mit dem gleichen Wert der Berechnung Mittelwert von dist und das Ergebnis in einem neuen df mit folgenden Struktur speichern:
hh_01 vill mean_dist
1 100 1226.515
2 100 .......
ich weiß, dass ich die for
Schleife verwenden (oder vielleicht alternativ sapply/lapply
oder), aber ich weiß nicht, wie man diesen Befehl beenden ...
Ich weiß, das sind Grundlagen in der Programmierung (nicht nur in R), aber ich bin kein Programmierer und ziemlich neu in diesem Bereich ...) Ich würde jede Hilfe zu schätzen wissen. Je einfacher der Code, desto besser für mich (bitte mit kurzer Erklärung). Ich würde diese Art von Schleifen (oder Schleifen im Allgemeinen) gerne verstehen, weil ich in Zukunft sehr oft mit dieser Art von Fragen arbeiten muss. Vielen Dank.
gut, dass Sie Beispieldaten zur Verfügung gestellt, aber es basiert auf zufälligen Generierung von Werten, so verändert sich ständig und somit nicht reproduzierbar. Verwenden Sie etwas wie 'set.seed = 1234', um ein konstantes Ergebnis zu erhalten – epi99
geändert. Danke für deine Nachricht. – Mapos