从R中的不同向量中提取和打印多个元素

时间:2014-12-29 04:48:58

标签: r

我有一个超过20列的数据框,我正在尝试创建一个新对象,它返回一个向量的最大值,并返回不同向量/变量的同一行中的值。我一直在阅读许多页面/网站上的提取元素,但我发现没有一个在我的上下文中看起来相关。

以下是我正在使用的代码:

object <- DF[which.max(DF[,ColNumber]),"VARNAME"]

这行代码的作用是找到与ColNumber的最大值对应的行,然后仅打印该行的VARNAME值。如何让R返回/打印两个VARNAME的值和最大值?

2 个答案:

答案 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