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

如何在R语言的篮球赛事得分Data Frame中选取总分最高的球队行

嘿,我来帮你搞定这个问题!要从记录篮球赛事的Data Frame里挑出赛季总分最高的球队对应的行,有好几类实用的方法,我给你拆解一下:

Base R 原生方法

如果不想加载额外的包,用Base R就能轻松解决:

  1. 只取第一个最高分球队:用which.max()定位最大值的位置
# 假设你的Data Frame叫bball_data,总分列叫total_points
top_single_team <- bball_data[which.max(bball_data$total_points), ]

⚠️ 注意:如果有多个球队总分并列第一,这个方法只会返回排在最前面的那一支。

  1. 取出所有并列最高分的球队:先拿到最高分,再用逻辑索引匹配
# 先计算总分的最大值(na.rm=TRUE处理可能存在的NA值)
max_total <- max(bball_data$total_points, na.rm = TRUE)
# 筛选出总分等于最大值的所有行
top_all_teams <- bball_data[bball_data$total_points == max_total, ]

这个方法会把所有和最高分持平的球队都捞出来,适合有并列第一的场景。

dplyr 简洁方法(推荐)

如果你习惯用tidyverse生态,dplyr的代码会更直观易读:
先确保已经加载包:

library(dplyr)
  1. 用filter匹配最大值
top_teams <- bball_data %>%
  filter(total_points == max(total_points, na.rm = TRUE))
  1. 用slice_max更直接
# 只取1支最高分球队
top_single_team <- bball_data %>%
  slice_max(n = 1, order_by = total_points, na.rm = TRUE)

# 取出所有并列第一的球队(默认with_ties=TRUE,可省略)
top_all_teams <- bball_data %>%
  slice_max(order_by = total_points, na.rm = TRUE)

举个实际例子

比如我们构造一个测试数据集:

bball_data <- data.frame(
  team = c("湖人", "勇士", "凯尔特人", "雄鹿"),
  total_points = c(8200, 8350, 8350, 8100)
)

# 用slice_max取出所有并列第一的球队
bball_data %>% slice_max(order_by = total_points)

运行后会返回勇士和凯尔特人这两行,完美符合需求!

最后提醒一句:如果你的总分列是字符类型,记得先转成数值型(as.numeric()),不然max()函数会出错哦~

内容的提问来源于stack exchange,提问作者R.Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:43:40