folgenden Daten Gegeben:rollmean mit dplyr und magrittr
set.seed(1)
data <- data.frame(o=c('a','a','a','a','b','b','b','b','c','c','c','c'), t=c(1,2,3,4,1,2,3,4,1,2,3,4), u=runif(12), v=runif(12))
data
o t u v
1 a 1 0.26550866 0.6870228
2 a 2 0.37212390 0.3841037
3 a 3 0.57285336 0.7698414
4 a 4 0.90820779 0.4976992
5 b 1 0.20168193 0.7176185
6 b 2 0.89838968 0.9919061
7 b 3 0.94467527 0.3800352
8 b 4 0.66079779 0.7774452
9 c 1 0.62911404 0.9347052
10 c 2 0.06178627 0.2121425
11 c 3 0.20597457 0.6516738
12 c 4 0.17655675 0.1255551
Ich mag den Roll mean (Paket Zoo) von u pro Gruppe berechnen, indem das coloumn o definiert. Die Reihenfolge für das rollende Mittel wird mit t festgelegt. Der rollende Mittelwert sollte dem data.frame als neue Spalte hinzugefügt werden.
Ich möchte magrrittr und dplyr verwenden. Ich versuchte
data %>%
group_by(o) %>%
sort(t) %>%
select(u) %>%
rollmean(3) %>%
rbind
Aber das wird nicht funktionieren. Ist es möglich, es mit magrittr und dplyr zu machen oder muss ich es Schritt für Schritt machen? Die Werte von o und t sind in meinen realen Daten variabel.
Wie fülle ich die ersten beiden Zeilen?
großartig! Wenn t nicht richtig geordnet ist, verwende ich Daten%>% group_by (o)%>% anordnen (o, t)%>% mutieren (rM = rollmean (u, 3, na.pad = TRUE, align = "right")) – JerryWho
@JerryWho Ja, Sie können 'arrangieren' verwenden, wenn nicht bestellt. – akrun