ich Daten haben, die wie folgt aussehen:Quartile von Gruppe als neue Variable in Datenrahmen gespeichert
id <- c(1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9)
yr <- c(1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3)
gr <- c(3,4,5,3,4,5,3,4,5,4,5,6,4,5,6,4,5,6,5,6,7,5,6,7,5,6,7)
x <- c(33,48,31,41,31,36,25,38,28,17,39,53,60,60,19,39,34,47,20,28,38,15,17,49,48,45,39)
df <- data.frame(id,yr,gr,x)
id yr gr x
1 1 1 3 33
2 1 2 4 48
3 1 3 5 31
4 2 1 3 41
5 2 2 4 31
6 2 3 5 36
7 3 1 3 25
8 3 2 4 38
9 3 3 5 28
10 4 1 4 17
11 4 2 5 39
12 4 3 6 53
13 5 1 4 60
14 5 2 5 60
15 5 3 6 19
16 6 1 4 39
17 6 2 5 34
18 6 3 6 47
19 7 1 5 20
20 7 2 6 28
21 7 3 7 38
22 8 1 5 15
23 8 2 6 17
24 8 3 7 49
25 9 1 5 48
26 9 2 6 45
27 9 3 7 39
Ich möchte eine neue Variable in den Datenrahmen schaffen, der die Quantile von „x“ enthält berechnet innerhalb jeder einzigartigen Kombination von "Jahr" und "Gr". Das heißt, anstatt die Quantile von "x" basierend auf allen 27 Datenzeilen in dem Beispiel zu finden, möchte ich die Quantile durch zwei Gruppierungsvariablen berechnen: yr und gr. Zum Beispiel die Quantile von "x", wenn yr = 1 und gr = 3, yr = 1 und gr = 4, etc.
Sobald diese Werte berechnet werden, möchte ich, dass sie an den Datenrahmen als angehängt werden eine einzelne Spalte, sagen wir "x_quant".
Ich bin in der Lage, die Daten in die separaten Gruppen zu teilen, die ich brauche, und ich weiß, wie man Quantile berechnet, aber ich habe Schwierigkeiten, die beiden Schritte auf eine Weise zu kombinieren, die eine neue Spalte in der bestehenden erstellen kann Datenrahmen.
Jede Hilfe, die Sie zur Verfügung stellen können, würde sehr appreciated sein! Vielen Dank!
~ kj
von Quantil meinst du Perzentil? Wenn ja, macht 'dplyr' es ziemlich einfach:' library (dplyr); df%>% group_by (Jahr, Jahr)%>% mutieren (Prozentzahl = Prozent_Rank (x) * 100) ' – alistaire