2015-06-13 3 views
0

Я хотел бы понять, как написать следующий код, используя пакет dplyr:Как агрегировать данные с пакетом dyplr в R

averageStepsDayType <- aggregate(
    NAreplacement$steps, 
    by=list(interval=NAreplacement$interval, dayType=NAreplacement$dayType), 
    mean 
) 

Это оригинальный кадр данных:

> head(NAreplacement) 
     steps  date interval dayType 
1 1.7169811 2012-10-01  0 weekday 
2 0.3396226 2012-10-01  5 weekday 
3 0.1320755 2012-10-01  10 weekday 
4 0.1509434 2012-10-01  15 weekday 
5 0.0754717 2012-10-01  20 weekday 
6 2.0943396 2012-10-01  25 weekday 

И это желаемый результат, полученный с указанным кодом:

> head(averageStepsDayType) 
    interval dayType   x 
1  0 weekday 2.25115304 
2  5 weekday 0.44528302 
3  10 weekday 0.17316562 
4  15 weekday 0.19790356 
5  20 weekday 0.09895178 
6  25 weekday 1.59035639 

Вот моя попытка:

byDate <- group_by(NAreplacement, date) 
averageStepsDayType <- summarize(byDate, mean(steps)) 

> head(averageStepsDayType) 
     date x 
1 2012-10-01 37.38260 
2 2012-10-02  0.43750 
3 2012-10-03 39.41667 
4 2012-10-04 42.06944 
5 2012-10-05 46.15972 
6 2012-10-06 53.54167 

Может ли кто-нибудь дать мне пример? Я предполагаю, что это должна быть комбинация между функциями select и group_by, но я не понял, как это сделать.

ответ

2

Попробуйте

library(dplyr) 
NAreplacement %>% 
     group_by(interval, dayType) %>% 
     summarise(x=mean(steps)) 
Смежные вопросы