gpt4 book ai didi

r - 使用跨越数年的大型数据集计算 R 中的月平均值

转载 作者:行者123 更新时间:2023-12-02 21:05:42 25 4
gpt4 key购买 nike

我环顾四周,但没有找到完全符合我的问题的解决方案。

我有一个数据集 (df1),其中包含从 1945 年到 1981 年的每日河流流量读数 - 所以这是一个非常大的数据集。

我想计算每年每个月的平均流量。我可以使用数据透视表在 Excel 中执行此操作,但我想知道在 R 中是否会更省力。

我的问题是双重的。首先,我无法将日期转换为实际日期格式(尽管尝试了推荐代码),其次,对日期进行排序后,我不确定如何汇总数据集中每年的月平均值。我是 R 的新手 - 我一直在尽可能地查找教程,但这个特定问题似乎没有容易找到的解决方案。

所以,我的数据是这样的:

         X1    X2
1 01/10/1945 0.835
2 02/10/1945 0.835
3 03/10/1945 0.835
4 04/10/1945 0.835
5 05/10/1945 0.835
6 06/10/1945 0.433

日期最初是字符格式,所以我使用代码

df1$X1<-as.Date(df1$X1,"%m/%d/%Y")

尝试将其转换为日期格式,但由于某种原因,它一直在搞砸,日期中有几个空白:

8132  1968-05-01  4.163
8133 1968-06-01 4.134
8134 1968-07-01 1.464
8135 1968-08-01 1.682
8136 1968-09-01 1.036
8137 1968-10-01 0.564
8138 1968-11-01 0.575
8139 1968-12-01 0.547
8140 <NA> 10.590
8141 <NA> 16.760
8142 <NA> 3.879
8143 <NA> 11.410

日期以 12 个为一组显示,所以我假设问题与“月”的混淆有关,但我尝试了几种不同的 d/m/Y 组合,但没有一个有效。

综上所述,

  • 如何将跨越多年的数据转换为日期格式而不会使 R 变得困惑?
  • 对日期进行排序后,当我的数据跨越多年时,如何生成月平均值?

非常感谢,

最佳答案

我建议使用 Lubridate 来转换您的日期,并使用 dplyr 来操作您的数据框。查看您的数据,您的日期格式似乎是日/月/年(dmy with Lubridate)。

假设您的数据框称为 df :

library(dplyr)
library(lubridate)

df <- mutate(df, X1 = dmy(X1),Year = year(X1), Month = month(X1))
df <- group_by(df, Month, Year)
df <- summarise(df, result = mean(X2) )

您甚至可以链接这些命令以使其更短:

df <- df %>%
mutate( X1 = dmy(X1),Year = year(X1), Month = month(X1)) %>%
group_by(Month, Year) %>%
summarise(result = mean(X2) )

希望这对您有所帮助。

关于r - 使用跨越数年的大型数据集计算 R 中的月平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205472/

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