在r中按时间段添加数据

时间:2014-03-30 17:42:11

标签: r

我有一个非常大的数据集,我试图缩小。出于这个问题的目的,我将通过仅关注一些变量来简化它。我每隔5分钟从许多科目中抽取样本,持续3个小时,我想每两个时间段加在一起。我没有使用5分钟的间隔,而是希望切换到10分钟的间隔。

数据:

ID  Time  Measurement
A1  5     2
A1  10    3
A1  15    2
A1  20    4
A2  5     0
A2  10    3
A2  15    3
A2  20    0

我想把它变成:

ID  Time  Measurement
A1  10    5
A1  20    6
A2  10    3
A2  20    3

我如何在R?

中实现这一点

1 个答案:

答案 0 :(得分:1)

也许您可以某种方式使用findIntervalaggregate ......或许如下所示:

mydf$newTime <- findInterval(mydf$Time, seq(1, 180, 10)) * 10

## Or, as suggested by G. Grothendieck
mydf$newTime <- 10 * ((mydf$Time - 5) %/% 10) + 10

&#34;是myDF&#34;现在看起来像这样:

mydf
#   ID Time Measurement newTime
# 1 A1    5           2      10
# 2 A1   10           3      10
# 3 A1   15           2      20
# 4 A1   20           4      20
# 5 A2    5           0      10
# 6 A2   10           3      10
# 7 A2   15           3      20
# 8 A2   20           0      20

从这里开始,我们可以轻松使用aggregate

aggregate(Measurement ~ ID + newTime, mydf, sum)
#   ID newTime Measurement
# 1 A1      10           5
# 2 A2      10           3
# 3 A1      20           6
# 4 A2      20           3

除了您的样本数据之外,我还没有测试过这个......