如何在R中检索数据帧中列的最大值对应的行值

如何在R中检索数据帧中列的最大值对应的行值,r,R,正如标题所示,我有一个查询来访问对应于列的最大值的行值(不是索引,也不是整行) 例如:我有以下数据集(结果): 需要以下方面的帮助: 如何编写命令来检索与标记(88)的最大列值相对应的行值(“sam”) 我可以使用以下命令获得“标记”列的最大值: max(results$marks, na.rm = TRUE) 然而,当我将它分配给一个变量以查看谁在考试中名列前茅时,我只得到标题名,而没有得到值sam top_scorer<- results$Name[which.max(results

正如标题所示,我有一个查询来访问对应于列的最大值的行值(不是索引,也不是整行)

例如:我有以下数据集(结果):

需要以下方面的帮助:

  • 如何编写命令来检索与标记(88)的最大列值相对应的行值(“sam”)
  • 我可以使用以下命令获得“标记”列的最大值:

    max(results$marks, na.rm = TRUE)
    
    然而,当我将它分配给一个变量以查看谁在考试中名列前茅时,我只得到标题名,而没有得到值sam

    top_scorer<- results$Name[which.max(results$marks, na.rm = TRUEr)]
    

    顶级射手你就快到了。实际上,您在示例代码中使用了
    which.max
    。要获得分数第二高的人,您可以按分数排序,然后选择第二个条目。这应该对双方都有效。我们使用
    which.max
    作为最大值,使用排序作为第二个最大值:

    df <- data.frame(Name=c("sam","paul","tom","james", "richard"), 
                     subject=c("maths", "science", "social", "english", "maths"),
                     marks=c(88,79, 66, 78, 83))
    
    
    df$max_name <- df$Name[which.max(df$marks)]
    df <- df[order(df$marks,decreasing=T),]
    df$second_max_name <- df$Name[2]
    
    df可能重复的
    
    df <- data.frame(Name=c("sam","paul","tom","james", "richard"), 
                     subject=c("maths", "science", "social", "english", "maths"),
                     marks=c(88,79, 66, 78, 83))
    
    
    df$max_name <- df$Name[which.max(df$marks)]
    df <- df[order(df$marks,decreasing=T),]
    df$second_max_name <- df$Name[2]