【发布时间】: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