鑑於以下數據:rollmean與dplyr和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
我想每由coloumnÒ定義的組來計算滾動平均值(包動物園)的u。滾動均值的順序由t設置。應該將滾動平均值作爲新的列添加到data.frame中。
我想使用magrittr和dplyr。我試過
data %>%
group_by(o) %>%
sort(t) %>%
select(u) %>%
rollmean(3) %>%
rbind
但是這不行。是否可以用magrittr和dplyr來做到這一點,還是我必須一步一步做到這一點? o和t的值在我的實際數據中是可變的。
如何填寫前兩行?
太棒了!如果t沒有正確排序,我使用數據%>%group_by(o)%>%arrange(o,t)%>%mutate(rM = rollmean(u,3,na.pad = TRUE,align =「right」 )) – JerryWho 2014-09-12 16:38:51
@JerryWho是的,你可以在不訂購時使用'arrange'。 – akrun 2014-09-12 16:39:51