Ich möchte hinzufügen, ein paar Spalten zum d2 Datenrahmen, die aus dem "Ergebnis" Vektor in der "d" Datenrahmen stammen. Gibt es einen einfachen Weg, dies zu tun?erstellen Übersichtstabelle nach dplyr Aktion
Hier ist der Datenrahmen "d". Beachten Sie, dass die Ergebnisspalte der Mittelwert jeder FLAG-Kombination der Gruppen & ist. 3, dh der Mittelwert der Gruppe A, wenn Flag = 0
d = data.frame(x=c(seq(1,5,1),seq(11,15,1),100,1000),group= c(rep("A",5),rep("B",5),"A","B"))
d = d%>%
group_by(group) %>%
mutate(
U=quantile(x, 0.75) + 1.5*IQR(x),
L=quantile(x, 0.25) - 1.5*IQR(x),
flag = ifelse(x>U | x<L,1,0),
mu = mean(x)
) %>%
group_by(group, flag) %>%
mutate(result = mean(x))
as.data.frame(d)
x group U L flag mu result
1 1 A 8.5 -1.5 0 19.16667 3
2 2 A 8.5 -1.5 0 19.16667 3
3 3 A 8.5 -1.5 0 19.16667 3
4 4 A 8.5 -1.5 0 19.16667 3
5 5 A 8.5 -1.5 0 19.16667 3
6 11 B 18.5 8.5 0 177.50000 13
7 12 B 18.5 8.5 0 177.50000 13
8 13 B 18.5 8.5 0 177.50000 13
9 14 B 18.5 8.5 0 177.50000 13
10 15 B 18.5 8.5 0 177.50000 13
11 100 A 8.5 -1.5 1 19.16667 100
12 1000 B 18.5 8.5 1 177.50000 1000
Nun würde Ich mag eine Übersichtstabelle haben, wo ich die große Gruppe zeigen bedeuten, die in der „mu“ Spalte bereits vorhanden ist, aber ich würde Ich möchte 2 weitere Spalten "mu_1" und "mu_0" hinzufügen, die ich unten manuell hinzugefügt habe. Gibt es einen effizienten Weg, dies zu tun?
Vielen Dank.
d2 = d %>% group_by(group) %>%
summarise(U = mean(U),
L = mean (L),
mu= mean(mu)
)
as.data.frame(d2)
group U L mu mu_1 mu_0
1 A 8.5 -1.5 19.16667 100 3
2 B 18.5 8.5 177.50000 1000 13
Wie berechnen Sie 'mu_1' und' mu_0'? Ist dies der Min- und Max-Wert von 'result' für jede Gruppe? –
Sie wären der Mittelwert des Ergebnisvektors nach Gruppe und Flag .... Mittelwert (Ergebnis) nach Gruppe und Flag – user3022875
Add 'mu_1 = max (result [flag == 1])' und 'mu_0 = max (result [ flag == 0]) 'zum letzten' summieren' Teil – Jaap