如何在数据框中的不同列中找到R w.r.t最大值中的列值?

时间:2018-04-03 16:45:14

标签: r data-analysis

假设我有一个包含员工详细信息的数据框。

Dataframe员工有以下列:

Employee_IdEmployee_nameEmployee_ageEmployee_SalaryEmployee_Experience

我想使用一个命令找到具有最大年龄,工资和经验的员工的姓名,可以通过使用申请家庭功能。如果你知道我怎么做,请帮助我吗?

3 个答案:

答案 0 :(得分:1)

Employee_Id <- c(1, 2, 3, 4, 5)
Employee_name <- c('John', 'Sarah', 'David', 'Emma', 'Peter')
Employee_age <- c(22, 34, 40, 48, 55)
Employee_Salary <- c(2000, 3000, 5800, 3800, 5000)
Employee_Experience <- c(2, 12, 18, 26, 24)

employees <- data.frame(Employee_Id, Employee_name, Employee_age, Employee_Salary, Employee_Experience)

employees[employees$Employee_Salary == max(employees$Employee_Salary) | employees$Employee_age == max(employees$Employee_age) | employees$Employee_Experience == max(employees$Employee_Experience), c('Employee_name')]

结果:

[1] David Emma Peter

级别:David Emma John Peter Sarah

答案 1 :(得分:0)

假设您的data.frame为dat

 library(tidyverse)
    dat %>% filter(Employee_age==max(Employee_age),
                   Employee_Salary==max(Employee_Salary), 
                   Employee_Experience==max(Employee_Experience)) %>% 
      select(Employee_name)

答案 2 :(得分:0)

我不知道一个班轮,但这个逻辑适用于一列: 例如

# for Employee salary
df[which(df$Employee_salary == max(df$Employee_salary))] 

你可以为他人做同样的逻辑