You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中筛选出包含最大小时容量值的日期?

解决筛选包含最大小时容量值的日期问题

首先明确你的核心需求:找到包含单个小时容量最大值的日期,而非按日期求和后总容量最大的日期。你的数据集中,单个小时的最大容量是72,对应日期是12-02-2020,我们需要精准定位到这个日期。

你的代码问题出在哪?

你之前尝试的这段代码:

max_hour <- df %>% group_by(Date, hour) %>% summarise(total_volume = sum(volume)) %>% slice(which.max(total_volume)) %>% select(Date)

问题在于:

  • 你的数据集里每个Date+hour组合本来就只有一条记录,summarise(sum(volume))并没有改变数值;
  • group_by(Date, hour)后用slice(which.max(total_volume)),会在每个分组里找最大值,最终得到的是每个日期内的最大小时容量,而非全局最大小时容量对应的日期。

正确的实现方案

这里提供两种简洁的实现方式,都能得到你想要的结果:

方法一:先定位全局最大值,再筛选对应日期

# 先获取全局最大的小时容量值
max_single_volume <- max(df$volume)

# 筛选出包含该最大值的日期(去重避免重复结果)
max_hour_date <- df %>% 
  filter(volume == max_single_volume) %>% 
  select(Date) %>% 
  distinct()

方法二:链式操作一步完成

max_hour_date <- df %>% 
  slice(which.max(volume)) %>%  # 直接定位到包含最大volume值的行
  select(Date)

运行任意一段代码,都会返回目标日期12-02-2020。

验证结果

我们可以先确认数据里的最大值对应记录:

> max(df$volume)
[1] 72
> df[df$volume == 72, ]
        Date hour volume
6 12-02-2020    3     72

清晰可见,最大值72确实属于12-02-2020,上面的代码都能正确提取这个日期。


内容的提问来源于stack exchange,提问作者Sanam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 05:02:29