使用dplyr计数和分组

时间:2018-01-26 00:56:50

标签: r dplyr data.table

我的目标只是计算每天每小时的记录数。我认为可以使用this.$refs['qty' + index] 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)

等等

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

这似乎可以解决问题:

library(dplyr)
starwars %>% 
    group_by(gender, species) %>%
    count

看来(对于Frank来说),count函数可以直接获取分组字段:

starwars %>% count(gender, species)

答案 1 :(得分:1)

使用data.table,

test[, .N, by=.(date, hour)]

答案 2 :(得分:0)

<强>基

aggregate(name ~ gender + species, data = starwars, length)

如果我们想将NAs视为一个群体:

species1 <- factor(starwars$species, exclude = "")
gender1 <- factor(starwars$gender, exclude = "")
aggregate(name ~ gender1 + species1, data = starwars, length)