datetime – 将小时数据聚合成每日聚合

前端之家收集整理的这篇文章主要介绍了datetime – 将小时数据聚合成每日聚合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个小时的天气数据,格式如下:
Date,DBT
01/01/2000 01:00,30
01/01/2000 02:00,31
01/01/2000 03:00,33
...
...
12/31/2000 23:00,25

我需要的是每天的最大,最小,一样的总和,如下所示:

Date,MaxDBT,MinDBT,AveDBT
01/01/2000,36,23,28
01/02/2000,34,22,29
01/03/2000,32,25,30
...
...
12/31/2000,35,9,20

在R中怎么做?

1)这可以使用动物园紧凑地完成:
L <- "Date,33
12/31/2000 23:00,25"

library(zoo)
stat <- function(x) c(min = min(x),max = max(x),mean = mean(x))
z <- read.zoo(text = L,header = TRUE,sep = ",",format = "%m/%d/%Y",aggregate = stat)

这给出:

> z
           min max     mean
2000-01-01  30  33 31.33333
2000-12-31  25  25 25.00000

2)这里是一个只使用核心R的解决方案:

DF <- read.csv(text = L)
DF$Date <- as.Date(DF$Date,"%m/%d/%Y")
ag <- aggregate(DBT ~ Date,DF,stat) # same stat as in zoo solution

最后一行给出:

> ag
        Date  DBT.min  DBT.max DBT.mean
1 2000-01-01 30.00000 33.00000 31.33333
2 2000-12-31 25.00000 25.00000 25.00000

编辑:(1)由于第一次出现在动物园包中添加了read.zoo的text =参数.(2)小改进.

猜你在找的设计模式相关文章