【发布时间】:2016-06-18 03:24:08
【问题描述】:
有一个数据表如下所示:
timestamp id
785340 2016-04-01 00:01:19.000 4624
785341 2016-04-01 00:01:19.000 4624
785342 2016-04-01 00:02:20.000 4624
794012 2016-04-01 00:02:21.000 4624
18866 2016-04-01 00:02:28.142 4769
794198 2016-04-01 00:03:31.000 4624
18906 2016-04-01 00:03:40.130 4648
18907 2016-04-01 00:04:40.155 4648
18908 2016-04-01 00:05:40.157 4648
797062 2016-04-01 00:05:48.000 4624
该表有两列:timestamp 和 id。时间戳列是使用df.table$timestamp<-as.POSIXct(df.table$timestamp) 生成的,第一列仅代表原始表中的行号,因为我根据时间戳对表进行了重新排序。
现在,我想计算给定分钟的 id 数,例如第 1 分钟有 2 个 id;第 2 分钟有 3 个 id,等等。换句话说,我想从时间戳中提取分钟信息。目标是构建一个时间序列,以一分钟为间隔,位于该 1 分钟间隔内的 id 的数量就是值。有没有有效的方法来做到这一点?谢谢。
【问题讨论】:
-
这是秒而不是分钟。
-
不确定分钟间隔是基于所有日期还是特定日期。如果日期是特定的,那么
aggregate(id~timestamp, data = transform(df.table, format(timestamp, "%Y-%m-%d %H:%M")), FUN = length) -
我只展示了一部分数据。它可以包括两个月。因此,将有 60*24*30*2 分钟。谢谢。
-
如果是完整日期而不是特定于数据,请将格式更改为
format(timestamp, "%M")
标签: r statistics time-series