datetime – 将小时数据聚合成每日聚合
发布时间:2020-12-14 00:47:32 所属栏目:百科 来源:网络整理
导读:我有一个小时的天气数据,格式如下: Date,DBT01/01/2000 01:00,3001/01/2000 02:00,3101/01/2000 03:00,33......12/31/2000 23:00,25 我需要的是每天的最大,最小,一样的总和,如下所示: Date,MaxDBT,MinDBT,AveDBT01/01/2000,36,23,2801/02/2000,34,22,2901/
我有一个小时的天气数据,格式如下:
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)小改进. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |