Я хочу начать использовать dplyr вместо ddply, но я не могу понять, как это работает (я прочитал документацию).
Например, почему, когда я пытаюсь выполнить mutate(), функция "group_by" не работает так, как она должна была?
Глядя на mtcars:
библиотека (автомобиль)
Скажем, я делаю data.frame, который представляет собой сводку mtcars, сгруппированных по "cyl" и "gear":
df1 <- mtcars %.%
group_by(cyl, gear) %.%
summarise(
newvar = sum(wt)
)
Затем скажите, что я хочу еще раз обобщить этот файл данных. С ddply это было бы просто, но когда я пытаюсь сделать это с dplyr, это не на самом деле "группировка":
df2 <- df1 %.%
group_by(cyl) %.%
mutate(
newvar2 = newvar + 5
)
По-прежнему выводится негруппированный вывод:
cyl gear newvar newvar2
1 6 3 6.675 11.675
2 4 4 19.025 24.025
3 6 4 12.375 17.375
4 6 5 2.770 7.770
5 4 3 2.465 7.465
6 8 3 49.249 54.249
7 4 5 3.653 8.653
8 8 5 6.740 11.740
Я что-то не так с синтаксисом?
Edit:
Если бы я сделал это с помощью plyr и ddply:
df1 <- ddply(mtcars, .(cyl, gear), summarise, newvar = sum(wt))
а затем для получения второго df:
df2 <- ddply(df1, .(cyl), summarise, newvar2 = sum(newvar) + 5)
Но этот же подход с суммой (newvar) + 5 в функции summary() не работает с dplyr...