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

R语言:如何用一行命令(apply族函数)获取各列最大值对应的员工姓名

一行搞定:用apply族函数找出各类极值对应的员工姓名

嘿,这个需求很常见,用sapply(apply家族里的实用成员)一行代码就能轻松实现!

核心思路是:针对你要找最大值的三个列(年龄、薪资、经验),逐个定位到该列最大值所在的行,然后提取对应的员工姓名。直接上可运行的代码:

sapply(c("Employee_age", "Employee_Salary", "Employee_Experience"), 
       function(col) employee$Employee_name[which.max(employee[[col]])])

代码拆解:

  • c("Employee_age", "Employee_Salary", "Employee_Experience"):先列出我们要处理的三个目标列名;
  • sapply会遍历这个列名向量,对每个列执行后面的匿名函数;
  • which.max(employee[[col]]):快速找到当前列最大值所在的行索引;
  • 最后用这个索引提取Employee_name列对应的姓名,结果会返回一个清晰的命名向量,对应每类极值的员工。

小细节补充:

如果某一列有多个员工并列最大值(比如两个员工薪资相同且都是最高),which.max只会返回第一个出现的员工姓名。要是需要获取所有并列极值的员工,只需要把which.max换成逻辑判断即可:

sapply(c("Employee_age", "Employee_Salary", "Employee_Experience"), 
       function(col) employee$Employee_name[employee[[col]] == max(employee[[col]])])

这时返回的会是一个列表,每个元素对应该类极值的所有员工姓名。

内容的提问来源于stack exchange,提问作者Suraj Kumar Talreja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:18:42