我的目标只是计算每天每小时的记录数 . 我认为可以使用 dplyr
或 data.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
我只需要按两个变量(日期和小时)和计数进行分组 . id
并不重要 . 但是, dplyr
中的这两个方法似乎没有产生所需的结果(输入数据长度相同的数据帧,包括数百万条记录,是输出) . 我在这做错了什么?
test %>% group_by(date, hour) %>% mutate(count = n())
test %>% add_count(date, hour)
输出看起来像这样
> 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
等等
有什么建议?
3 回答
Base
如果我们想将NAs视为一个群体:
这似乎可以解决问题:
看来(对于Frank来说),count函数可以直接获取分组字段:
使用data.table,