如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等

Posted

技术标签:

【中文标题】如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等【英文标题】:How to calculate yearly/monthly average, max value, min value etc of a Column based on the date (month/day/year) on another column in R 【发布时间】:2021-11-17 07:12:53 【问题描述】:

如何根据 R 中另一列上的日期(月/日/年)计算列的年/月平均值、最大值、最小值等。我的日期框架包含每日、每月和每小时的降水量和排放量日期从 2013 年 1 月 1 日到 2019 年 12 月 31 日

  | Date     |precipitation  | Stream A Discharge |  Stream B Discharge | 
----------------------------------------------------------------------------
1  | 1/1/2013 |  0.35        |  2.35              |   3.83              | 
 

例如,我将如何计算 R 中 2013 年或 2013 年 1 月或 2014 年 12 月 A 流的平均/平均/最大/最小降水量或流量?

【问题讨论】:

使用 dplyr::group_by(year(Date)) 或 group_by(Date) 【参考方案1】:

将数据更改为date 类,从中提取年份并使用across 可以计算多个列的多个统计信息。

library(dplyr)
library(lubridate)

df %>%
  mutate(Date = dmy(Date), 
         year = year(Date), 
         year_month = format(Date, '%Y-%m')) %>%
  group_by(year) %>%
  #If you need for every month
  #group_by(year_month) %>%
  summarise(across(precipitation:Stream.B.Discharge, 
            list(mean = mean, min = min, max = max)))

【讨论】:

以上是关于如何根据R中另一列的日期(月/日/年)计算列的年/月平均值、最大值、最小值等的主要内容,如果未能解决你的问题,请参考以下文章

如何根据火花DataFrame中另一列的值更改列的值

验证一列大于yii中另一列的日期

如何在表中指定基于 SQL Server 中另一列的计算列?

使用同一表中另一列的数据计数更新一列? [关闭]

根据火花数据框中另一列的值查找列的最大值?

将时间序列列更改为日期