【问题标题】:R Lubridate - Calculating the daily maximum of a value [duplicate]R Lubridate - 计算一个值的每日最大值[重复]
【发布时间】:2020-08-20 05:28:59
【问题描述】:

我有一个数据集,其中包含从 2010 年到 2012 年三年内三个变量(val_1、val_2、val_3)的每小时值测量值

我正在尝试使用 lubridate 和 tidyverse 过滤掉这个数据集的每日最大值

structure(list(Timestamp = c("2010-01-01 01:00:00", "2010-01-01 02:00:00", 
"2010-01-01 03:00:00", "2010-01-01 04:00:00", "2010-01-01 05:00:00", 
"2010-01-01 06:00:00"), val_1 = c(44L, 44L, 44L, 44L, 43L, 42L
), val_2 = c(100L, 96L, 93L, 89L, 89L, 83L), val_3 = c(0L, 0L, 
0L, 0L, 0L, 0L)), class = "data.frame", row.names = c("1", "2", 
"3", "4", "5", "6"))

            Timestamp   val_1    val_2       val_3 
1 2010-01-01 01:00:00      44      100           0 
2 2010-01-01 02:00:00      44       96           0 
3 2010-01-01 03:00:00      44       93           0 
4 2010-01-01 04:00:00      44       89           0 
5 2010-01-01 05:00:00      43       89           0 
6 2010-01-01 06:00:00      42       83           0 

我一直试图获得一个显示 val_1 的每日最大值的输出,但我不能完全让它输出每个单独的每日最大值,而是它总是只返回整个列的最大值

 data %>%
  group_by(Day = as.Date(Timestamp)) %>%
  summarise(max_value = max(val_1))

有谁知道我做错了什么?

【问题讨论】:

  • 你加载了plyr 吗?请改用dplyr::summarise(max_value = max(val_1))
  • 每一行代表一个小时,我试图从每 24 行(每天 24 小时)中找出 val_1 的每日最大值
  • 刚刚尝试使用您的 dplyr 添加,效果很好,谢谢!

标签: r dplyr tidyverse lubridate


【解决方案1】:
data %>%
group_by(Day = as.Date(Timestamp)) %>%
dplyr::summarise(max_value = max(val_1))

解决方案:我需要在我的管道代码中调用 dplyr 包以实现汇总函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多