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

R语言如何按类别筛选出各类型对应最大骑行时长的行

R按用户类型提取最大骑行时长对应行的实现方法

原始数据框结构参考如下:
数据表示意图

以下提供两种常用实现方案:

方案1:使用dplyr包(代码更简洁易读)

需要先安装加载dplyr和tibble包,假设你的原始数据框名为df,包含user_type(用户类型,取值为member/casual)、day_of_week(星期几)、ride_length(骑行时长)三列:

# 加载依赖包
library(dplyr)
library(tibble)

result <- df %>%
  group_by(user_type) %>%
  # 取每组骑行时长最大的1行,with_ties=FALSE表示多行列同最大值时仅返回第一条
  slice_max(order_by = ride_length, n = 1, with_ties = FALSE) %>%
  ungroup() %>%
  rename(max_ride_length = ride_length) %>%
  # 将用户类型设为行名,匹配示例输出格式
  column_to_rownames("user_type") %>%
  select(day_of_week, max_ride_length)

# 输出结果
print(result)

方案2:Base R实现(无需额外安装依赖)

# 计算每类用户的最大骑行时长
max_duration <- aggregate(ride_length ~ user_type, data = df, FUN = max)
# 匹配最大时长对应的原始行
result <- merge(max_duration, df, by = c("user_type", "ride_length"))
# 去重,避免同最大值返回多行
result <- result[!duplicated(result$user_type), ]
# 调整输出格式
colnames(result)[colnames(result) == "ride_length"] <- "max_ride_length"
rownames(result) <- result$user_type
result <- result[, c("day_of_week", "max_ride_length")]

# 输出结果
print(result)

小提示:如果你的原始数据列名和上述假设不一致,替换代码中对应的列名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 16:45:04