Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于特定时间范围聚合数据_R - Fatal编程技术网

R 基于特定时间范围聚合数据

R 基于特定时间范围聚合数据,r,R,假设我们有一个timestamps列和一个value列,我们希望按照15或20分钟的时间间隔聚合value列。你会怎么做在R?以下是准备数据的示例 start <- as.POSIXct("2015-06-01") interval <- 1 # 1 minute interval end <- start + as.difftime(1, units="days") timestamps = as.numeric(seq(from=start, by=interval*60,

假设我们有一个timestamps列和一个value列,我们希望按照15或20分钟的时间间隔聚合value列。你会怎么做在R?以下是准备数据的示例

start <- as.POSIXct("2015-06-01")
interval <- 1 # 1 minute interval
end <- start + as.difftime(1, units="days")
timestamps = as.numeric(seq(from=start, by=interval*60, to=end))
values = rnorm(length(timestamps))
dt = data.frame(timestamps,values)

start处理时间序列对象时,最好使用
xts
包:

library(xts)
xx <- xts(values,order.by = timestamps)
## aggregate by mean/sum
period.apply(xx,endpoints(xx,'minutes',15),mean)

这种方法有问题。如果以20分钟的间隔分隔数据,它仍然会在一小时内创建3个条目。虽然我们知道在一个小时内,如果我们使用15分钟的时间间隔来聚合数据,其中一个时间间隔应该是零。那么,尝试上面的代码,时间间隔为20。您将看到,我们收到的不是每小时4个条目(根据我们15分钟的汇总),而是3个条目。例如,从12:00开始,我们必须有12:00、12:15、12:30、12:45的条目。但是,每隔20分钟,我们只会收到这样的条目:12:00、12:20、12:40。
timestamps = seq(from=start, by=interval*60, to=end)