R按日期和小时计算行数

时间:2017-12-08 04:43:58

标签: r date time count

我在R中有一个跨越几天的大数据集,需要创建一个新的向量,它计算属于每个日期每小时的行数,如果没有表示其间的小时,则为零(因此将有24个每天向量中的值)。例如:

Date       
29/07/2012 20:00:01
29/07/2012 20:00:02
29/07/2012 20:00:03
29/07/2012 22:01:01
29/07/2012 22:02:01
29/07/2012 22:02:03
30/07/2012 02:05:05
30/07/2012 02:05:06
30/07/2012 12:09:07
30/07/2012 12:10:06
31/07/2012 01:24:36
31/07/2012 01:24:40

会给出

的向量
3,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2

我发现了类似的内容(Count number of observations per day, month and year in RR group by date, and summarize the values),但他们使用的是as.Date,因为他们不会占用一小时而且我还没有能够使他们适应工作。

我该怎么做?谢谢!

1 个答案:

答案 0 :(得分:2)

我们可以使用tidyverse执行此操作。转换“日期”列日期时间类后,根据countDate获取hour,按“日期1”分组,complete获取任何缺失的序列

library(tidyverse)
df1 %>% 
    mutate(Date = dmy_hms(Date)) %>% 
    count(Date1 = as.Date(Date), Hour = hour(Date)) %>%
    group_by(Date1) %>% 
    complete(Date1, Hour = min(Hour):24, fill = list(n = 0)) %>%
    arrange(Date1, Hour)