正如标题所示,我有一个查询来访问与列的最大值对应的行值(不是索引而不是整行)。
FOR EX:我有以下数据集(结果):
Name subject marks
sam maths 88
paul science 79
tom social 66
james english 78
richard maths 83
需要以下帮助:
我可以使用以下命令获取标记列的最大值:
max(results$marks, na.rm = TRUE)
但是,当我将其分配给变量以查看谁是考试的首位时,我只得到标题名称而不是sam的值。
top_scorer<- results$Name[which.max(results$marks, na.rm = TRUEr)]
请帮忙。我是R编程的初学者。
答案 0 :(得分:1)
你快到了。实际上,您在示例代码中使用了which.max
。要获得排名第二的人marks
,您可以按marks
订购,然后选择第二个条目。这应该适用于两者。我们使用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]
请注意,如果需要,您可以使用排序来获取最大值,order
函数默认为最后放置NA
。