我有一个超过20列的数据框,我正在尝试创建一个新对象,它返回一个向量的最大值,并返回不同向量/变量的同一行中的值。我一直在阅读许多页面/网站上的提取元素,但我发现没有一个在我的上下文中看起来相关。
以下是我正在使用的代码:
object <- DF[which.max(DF[,ColNumber]),"VARNAME"]
这行代码的作用是找到与ColNumber
的最大值对应的行,然后仅打印该行的VARNAME
值。如何让R返回/打印两个VARNAME
的值和最大值?
答案 0 :(得分:0)
由于您需要多个值作为输出,因此您可以创建一个向量,例如:
object <- c(DF[which.max(DF[,ColNumber]),"VARNAME"],max(DF[,ColNumber]))
例如,获取mtcars
数据集,
data(mtcars)
object<-c(mtcars[which.max(mtcars[,3]),"mpg"],max(mtcars[,3]))
object
#[1] 10.4 472.0
此处max(mtcars[,3])
给出第3列中的最大值,而mtcars[which.max(mtcars[,3]),"mpg"]
给出第3列具有最大值的行的mpg
值。
答案 1 :(得分:0)
使用dplyr
的替代方案。首先从数据集mtcars中选择感兴趣的列。然后过滤disp
的最大值。
data(mtcars)
library(dplyr)
select(mtcars, mpg, disp) %>% filter(disp==max(disp))
# mpg disp
# 1 10.4 472