每分钟聚合一次,重复一次

时间:2017-03-28 08:59:59

标签: r

有几天我在试图计算一段时间内的重复观察时面临一些困难,让我们说每分钟。 我基本上需要每分钟计算某个区域内的人数,因为主机连接到我的Wi-Fi网络,所以会检测到ID。 实际上,我有这样的事情:

getenv

我需要一个代码,每分钟返回一次ID,考虑到重复,所以结果应如下所示:

ID           DATE

247  2017-03-20 15:57
247  2017-03-20 16:01
247  2017-03-20 16:01
247  2017-03-20 16:02
201  2017-03-20 16:02
278  2017-03-20 16:02
247  2017-03-20 16:03
201  2017-03-20 16:03
278  2017-03-20 16:10
278  2017-03-20 16:10
278  2017-03-20 16:10
281  2017-03-20 16:30

有没有办法定制这样的代码,以便每小时,每天和每月给出相同的结果? 我找到的最好的代码就是这个:

         DATE          ID present

  2017-03-20 16:01         1
  2017-03-20 16:02         3
  2017-03-20 16:03         2
  2017-03-20 16:10         1
  2017-03-20 16:30         1

它返回:

output <- aggregate(data$mac ~ cut(data$date, "1 min"), data, count)

1 个答案:

答案 0 :(得分:1)

使用dplyr

library(dplyr)

df[!duplicated(df),] %>% 
       group_by(DATE) %>% 
       summarise(new = n())

# A tibble: 6 × 2
#                 DATE   new
#               <dttm> <int>
#1 2017-03-20 15:57:00     1
#2 2017-03-20 16:01:00     1
#3 2017-03-20 16:02:00     3
#4 2017-03-20 16:03:00     2
#5 2017-03-20 16:10:00     1
#6 2017-03-20 16:30:00     1

要通过Base R执行此操作,

aggregate(ID ~ DATE, df[!duplicated(df),], FUN = length)

                 DATE ID
#1 2017-03-20 15:57:00  1
#2 2017-03-20 16:01:00  1
#3 2017-03-20 16:02:00  3
#4 2017-03-20 16:03:00  2
#5 2017-03-20 16:10:00  1
#6 2017-03-20 16:30:00  1