gpt4 book ai didi

r - 从具有 R 标准格式日期/时间的大型数据集中计算平均每日值?

转载 作者:行者123 更新时间:2023-12-04 11:24:25 25 4
gpt4 key购买 nike

我有一个大约 1000 万行的数据框,跨越大约 570 天。使用 striptime 转换日期和时间后,数据如下所示:

          date          X1   
1 2004-01-01 07:43:00 1.2587
2 2004-01-01 07:47:52 1.2585
3 2004-01-01 17:46:14 1.2586
4 2004-01-01 17:56:08 1.2585
5 2004-01-01 17:56:15 1.2585

我想计算每一天的平均值(如一年中的几天,而不是一周中的几天),然后绘制它们。例如。获取所有日期为“2004-01-01”的行,计算平均价格,然后对“2004-01-2”执行相同的操作,依此类推。

同样,我对找到平均每月值(value)或每小时价格感兴趣,但我想一旦我知道如何获得平均每日价格,我就可以计算出这些。

我最大的困难是自动从日期变量中提取一年中的哪一天。如何循环遍历所有 365 天并计算每天的平均值,并将其存储在列表中?

我能够使用 weekdays() 函数找到一周中某天的平均值,但我找不到任何类似的东西。

最佳答案

这是使用 dplyr 的解决方案和 lubridate .首先,使用 floor_date 将日期四舍五入到最接近的日单位来简化日期。 (见下面 thelatemail 的评论),然后是 group_by日期并使用 summarize 计算平均值:

library(dplyr)
library(lubridate)

df %>%
mutate(date = floor_date(date)) %>%
group_by(date) %>%
summarize(mean_X1 = mean(X1))

使用 lubridate包,您可以使用类似的方法按月、周或小时获取平均值。例如,要按月计算平均值:
df %>%
mutate(date = month(date)) %>%
group_by(date) %>%
summarize(mean_X1 = mean(X1))

并按小时:
df %>%
mutate(date = hour(date)) %>%
group_by(date) %>%
summarize(mean_X1 = mean(X1))

关于r - 从具有 R 标准格式日期/时间的大型数据集中计算平均每日值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44814435/

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