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

如何按姓名与分组筛选DataFrame中温度列的最大绝对值数据?

按Name和Group分组筛选tem绝对值最大的记录

原始数据构造

Name <- c("Jon", "Jon", "Maria", "Maria","dan","dan","Jon", "Jon", "Maria", "Maria","dan","dan")
tem <- c(-23, -41, 32, 58,30,10,-20,63,-30,-33,55,66)
group <- c("max", "min", "max", "min","max","min","max", "min", "max", "min","max","min")
var <- c("lan", "lan", "lan", "lan","lan","lan","sea", "sea", "sea", "sea","sea","sea")
df <- data.frame(Name, tem,group,var)

解决方法(使用dplyr包)

先确保已安装并加载dplyr包,然后通过分组筛选实现需求:

# 安装dplyr(首次使用时执行)
# install.packages("dplyr")
library(dplyr)

# 分组筛选绝对值最大的记录
result <- df %>%
  group_by(Name, group) %>%
  filter(abs(tem) == max(abs(tem))) %>%
  ungroup()

# 输出结果(隐藏行号)
print(result, row.names = FALSE)

代码说明

  • group_by(Name, group):按Name和group两个字段对数据分组
  • filter(abs(tem) == max(abs(tem))):在每个分组内,筛选出tem列绝对值等于该组最大绝对值的行
  • ungroup():取消分组结构,将结果转换为普通数据框

运行结果

Name tem group var
   Jon -23   max lan
 Maria  32   max lan
 Maria  58   min lan
   Jon  63   min sea
   dan  55   max sea
   dan  66   min sea

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 08:15:54