我在R有一个动物园系列。我可以选择chron或POSIXct索引。在R中15分钟时间聚合
我该如何聚合到15分钟,每15分钟取最后一个元素?
我知道如何每日汇总,写作日期,但不知道如何汇总每15分钟。
谢谢。
我在R有一个动物园系列。我可以选择chron或POSIXct索引。在R中15分钟时间聚合
我该如何聚合到15分钟,每15分钟取最后一个元素?
我知道如何每日汇总,写作日期,但不知道如何汇总每15分钟。
谢谢。
这取决于你想要的东西有几种可能性。两者都使用chron
包中的trunc.times
。 aggregate.zoo
解决方案采用每个15分钟间隔内的最后一个值,并使用15分钟间隔开始时的时间对其进行标记,因此使用的时间为:00:00:00
,00:15:00
,00:30:00
和00:45:00
。 duplicated
解决方案使用相同的值,但使用实际在数据中找到的上次时间标记它们。在这两种情况下,我们只包括数据存在的时间间隔。
有(1)?aggregate.zoo
的aggregate.zoo
更多的例子,(2)所有三种动物园护身符有实例和(3)搜索R-帮助存档的话aggregate.zoo
和trunc
发现甚至更多的例子。
library(zoo)
library(chron)
z <- zoo(1:10, chron(1:10/(24*13)))
# 1. last value in each 15 minute interval
# using time at which interval begins
aggregate(z, trunc(time(z), "00:15:00"), tail, 1)
# 2. last value in each 15 minute interval
# time of last point in data within interval
z[!duplicated(trunc(time(z), "00:15:00"), fromLast = TRUE)]
嗨 我需要的不是“数据的时间间隔内最后一个点的” 也不 但 “时间间隔,其结束” 的比喻是 “在此间隔开始时间” ...我需要天花板而不是地板或截断 – skan 2010-09-03 16:19:13
我想过一个可能的解决方案: 添加14分钟,然后截断结果。 你觉得呢? (我想我的秒数是00) 这个问题会在年份发生变化并添加一些闰秒时发生。 – skan 2010-09-03 19:26:20
是, delta < - as.numeric(times(“00:14:59”)); aggregate(z,trunc(time(z)+ delta,“00:15:00”),tail,1)应该这样做。 – 2010-09-04 23:30:54
@ user425895:请大家帮忙,实际投票并接受答案。就目前而言,你并不是一个好的SO公民。 – Shane 2010-09-03 20:04:12