时间线事件集中

时间:2013-02-20 02:31:57

标签: r statistics usage-statistics

鉴于一系列事件,是否有一种算法可用于确定某段时间内是否发生了一定数量的事件?例如,给定用户登录列表,是否有任何30天的时间段包含超过10次登录?

我可以想出一些蛮力方法来做到这一点,只是想知道是否有这种问题的算法或名称,我没有通过谷歌搜索进行搜索。

1 个答案:

答案 0 :(得分:0)

通常它被称为 binning 。它基本上使用 count 作为一个索引(例如 events)聚合一个变量(例如 time)摘要功能。

由于您没有提供数据,我只会展示一个简单的例子:

# Start with a dataframe of dates and number of events
data <- data.frame(date=paste('2013', rep(1:12, each=20), rep(1:20, times=12), sep='-'),
                   logins=rpois(12*20, 5))

# Make sure to store dates as class Date, it can be useful for other purposes
data$date <- as.Date(data$date)

# Now bin it. This is just a dirty trick, exactly how you do it depends on what you want.
# Lets just sum the number of events for each month
data$month <- sub('-', '', substr(data$date, 6, 7))
aggregate(logins~month, data=data, sum, na.rm=TRUE)

这就是你想要的吗?