我有一组CPU记录数据,它们以不均匀的间隔记录数据。对于每一行,我想计算在该特定行的最后一秒内发生的行数。前两列为示例数据,第三列为预期输出。对于从日志开始起不到一秒的前n行,输出为NA。
timestamp (POSXIct) data output
2018-09-19 00:53:48.014469 123 NA
2018-09-19 00:53:48.031590 123 NA
2018-09-19 00:53:48.052569 123 NA
...
... 56 other rows not shown
...
2018-09-19 00:53:48.015465 123 60 --> first row that is >=1 sec from the start of the file
2018-09-19 00:53:48.017463 123 61 --> 61 rows within 1 sec from this time including this row
2018-09-19 00:53:48.018862 123 62 --> 62 rows within 1 sec from this time
2018-09-19 00:53:48.024468 123 62
2018-09-19 00:53:48.031869 123 61
2018-09-19 00:53:48.081869 123 50 --> 50 rows within 1 sec from this time
目前,我正在使用一个简单的for
循环,但是对于合理数量的数据来说,时间是多余的。我已经考虑过尝试混合使用楼层数,累计计数,findInterval,汇总等。但是在间隔时间不均匀的情况下,我看不到一种可行的方法。关于加快实施的任何想法吗?