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

如何使用R语言查找对应最大points值的id

找到对应最大points值的id的简洁R实现

嘿,这是个很实用的小需求,我给你几个简洁的R代码方案,轻松搞定这个问题~

首先先还原你的示例数据:

df <- data.frame(id=c(2,3,6,8,12,34,27), points=c(2,3,5,9,19,2,3))

方法1:基础R极简写法(适合唯一最大值场景)

df$id[which.max(df$points)]

which.max()会直接返回points列中最大值所在的位置索引,用这个索引提取对应的id,一行代码搞定,完全匹配你示例里的情况,运行结果就是12。

方法2:通用写法(支持多个相同最大值)

如果你的数据里可能存在多个相同的最大points值,这个写法能返回所有对应的id:

df$id[df$points == max(df$points)]

比如要是有两个行的points都是19,这个代码会把这两个行的id都返回,适用性更广。

方法3:tidyverse风格写法(可读性强)

如果你习惯用dplyr这类tidyverse工具,管道写法会更直观:

library(dplyr)
df %>% 
  filter(points == max(points)) %>% 
  pull(id)

先筛选出points等于最大值的行,再提取id列,逻辑清晰,看代码就知道在做什么。

根据你给出的示例,方法1是最简洁高效的选择~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:37:38