r - 如何在R中选择包含最大小时值的日期?
问题描述
我有以下数据集
df <- data.frame(Date = c("12-01-2020", "12-01-2020", "12-01-2020", "12-02-2020", "12-02-2020", "12-02-2020", "12-03-2020", "12-03-2020", "12-03-2020"), hour = c(1, 2, 3, 1, 2, 3, 1, 2, 3), volume = c(28, 4, 12, 16, 33, 72, 55, 24, 65))
我正在使用以下技术来获取最大音量的日期
max_day <- df %>%
group_by(Date) %>%
summarise(total_volume = sum(volume)) %>%
slice(which.max(total_volume)) %>%
select(Date)
当我这样做时,我返回“12-03-2020”,因为加在一起的 3 天具有最高值。
我正在尝试做同样的事情,但略有不同。我想获得最大小时的日期。现在我正在尝试类似上面的东西,但它不起作用。
max_hour <- df %>%
group_by(Date, hour) %>%
summarise(total_volume = sum(volume)) %>%
slice(which.max(total_volume)) %>%
select(Date)
我想要这个返回“12-02-2020”,因为它包含最高小时 = 72。
解决方案
在您的代码中,您按日期和小时分组,然后汇总步骤删除最后一个分组级别(小时),同时保留之前的分组级别(日期)。因此,除非您ungroup() %>%
或使用summarize(... , .groups = "drop") %>%
,否则该阶段的数据仍按日期分组,您将获得每天而不是整体的最大音量小时。
max_hour <- df %>%
group_by(Date, hour) %>%
summarise(total_volume = sum(volume)) %>% # either add `.groups = "drop")` here,
ungroup() %>% # or use this line
slice_max(total_volume)
# A tibble: 1 x 3
Date hour total_volume
<chr> <dbl> <dbl>
1 12-02-2020 3 72
推荐阅读
- react-native - React Native / Redux Toolkit 状态渲染总是落后一步
- python - Python日志模块:处理程序重复消息
- github - (GitHub) 我可以将来自父项目的拉取请求应用到分叉吗?
- r - 基于str()从不同维度检索标题信息
- java - 将字符串转换为数组列表
在爪哇 - verilog - 端口尺寸(12 或 12)与连接尺寸 (6) 不匹配
- react-native - 错误:无法停用保持清醒。但是,它可能已经停用。由 Expo cli 创建的应用程序
- javascript - 父更新后如何在子组件中执行操作
- python - Pycharm无法识别xslx文件的问题
- python - 推文没有保存到我的设备,也没有给出错误