使用 dplyr 进行计数和分组

the*_*ide 1 r dplyr data.table

我的目标只是计算每天每小时的记录数。我认为可以使用dplyrordata.table包找到一个简单的解决方案:

我的数据集非常简单:

> head(test)
        id       date hour
1 14869663 2018-01-24   17
2 14869664 2018-01-24   17
3 14869665 2018-01-24   17
4 14869666 2018-01-24   17
5 14869667 2018-01-24   17
6 14869668 2018-01-24   17
Run Code Online (Sandbox Code Playgroud)

我只需要按两个变量(日期和小时)和计数进行分组。本id无所谓。但是,这两种方法在里面dplyr似乎并没有产生想要的结果(输出是一个与输入数据长度相同的数据帧,其中包含数百万条记录)。我在这里做错了什么?

test %>% group_by(date, hour) %>% mutate(count = n())
test %>% add_count(date, hour)
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

> head(output)
n_records       date hour
1 700      2018-01-24   0
2 750      2018-01-24   1
3 730      2018-01-24   2
4 700      2018-01-24   3
5 721      2018-01-24   4
6 753      2018-01-24   5
Run Code Online (Sandbox Code Playgroud)

等等

有什么建议?

Pau*_*l H 5

这似乎可以解决问题:

library(dplyr)
starwars %>% 
    group_by(gender, species) %>%
    count
Run Code Online (Sandbox Code Playgroud)

似乎(h/t to Frank)计数函数可以直接采用分组字段:

starwars %>% count(gender, species)
Run Code Online (Sandbox Code Playgroud)