使用Dplyr,我们可以做到
urls.py
如何使用data.table实现相同的功能而无需存储中间结果?
library(dplyr)
mtcars %>%
group_by(am, cyl) %>%
summarise(mpg = sum(mpg)) %>%
mutate(totmpg = sum(mpg))
# A tibble: 6 x 4
# Groups: am [2]
am cyl mpg totmpg
<dbl> <dbl> <dbl> <dbl>
1 0 4 68.7 325.8
2 0 6 76.5 325.8
3 0 8 180.6 325.8
4 1 4 224.6 317.1
5 1 6 61.7 317.1
6 1 8 30.8 317.1
答案 0 :(得分:2)
您可以简单地使用链:
mtcars[,.(mpg = sum(mpg)),.(am, cyl)][,totmpg := sum(mpg) ,am][]
# am cyl mpg totmpg
#1: 1 6 61.7 317.1
#2: 1 4 224.6 317.1
#3: 0 6 76.5 325.8
#4: 0 8 180.6 325.8
#5: 0 4 68.7 325.8
#6: 1 8 30.8 317.1
最后一对[]
确保打印结果。