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

R语言按q分组后分别提取w、e列最大值的技术问询

没问题,我来帮你补充完整这段dplyr管道代码,实现按q列分组后提取w和e列最大值的需求:

完整实现代码

首先要确保你已经加载了dplyr包,然后用以下代码完成操作:

# 加载dplyr包(如果还没加载的话)
library(dplyr)

# 你的原始数据定义
q <- c(503,503,503,503,503,503,503,503,503,503,503,503,503,510,510,510,510,510,510,510,510,510,510,510,510,525,526,526)
w <- c(56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56)
e <- c(26,26,26,26,26,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,30,30,30,30,33,33,33)
r <- data.frame(q,w,e, stringsAsFactors = FALSE)

# 补充完整的管道操作
r %>%
  group_by(q) %>%  # 按q列分组
  summarise(
    max_w = max(w, na.rm = TRUE),  # 提取每个分组w列的最大值
    max_e = max(e, na.rm = TRUE)   # 提取每个分组e列的最大值
  )
代码解释
  • group_by(q):这一步会把数据框r按照q列的不同值拆分成多个分组,每个分组对应一个唯一的q值。
  • summarise():用于对每个分组做汇总计算,这里我们分别计算了w和e列的最大值,并将结果命名为max_w和max_e。加上na.rm = TRUE是为了避免数据中存在缺失值时出错,如果你的数据确定没有NA,也可以省略这个参数,但保留它会让代码更健壮。
更简洁的写法(可选)

如果之后需要处理更多列的最大值,你可以用across()函数来简化代码,效果完全一致:

r %>%
  group_by(q) %>%
  summarise(across(c(w, e), max, na.rm = TRUE), .names = "max_{.col}")

这个写法会自动生成max_w和max_e的列名,省去手动命名的麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:42:08