gpt4 book ai didi

datetime - 将每小时数据汇总为每日汇总

转载 作者:行者123 更新时间:2023-12-03 20:06:23 24 4
gpt4 key购买 nike

我有以下格式的每小时天气数据:

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)这可以使用zoo紧凑地完成:

L <- "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"

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)自从这第一次出现以来,对 text=read.zoo参数已添加到zoo包中。
(2)细微的改进。

关于datetime - 将每小时数据汇总为每日汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200437/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com