2017-10-20 144 views
4

我不知道如何找到哪一行会给我一个数据帧中特定列的最高值如何查找哪个行具有数据框中特定列的最高值?

例如下面。

mtcars 
       mpg cyl disp hp drat wt ... 
Mazda RX4  21.0 6 160 110 3.90 2.62 ... 
Mazda RX4 Wag 21.0 6 160 110 3.90 2.88 ... 
Datsun 710 22.8 4 108 93 3.85 2.32 ... 

我专注于重量栏,并试图看看哪一个具有最高值,这将是2.88

而且马自达RX4摇尾如何找到使用名称,而不是载体的具体值? 例如马自达RX4 Wag wt。我试过df[df$Mazda RX4 Wag,df$wt]但给我一个错误。

感谢

回答

0

也许是这样的:

which(name.of.datatable == max(name.of.datatable[, 7]), arr.ind = T) 
2

要你的拳头的问题。

subset(mtcars, wt == max(wt))[, "wt"] 
[1] 5.424 

你的第二个问题

mtcars[row.names(mtcars) == "Mazda RX4 Wag", "wt"] 
[1] 2.875 
0

drop = FALSE让您打印的车名即行名称,你有最高或最低值wt

1.最高重量列价值

要打印最大值(使用max()函数)或高度st值为wt列。

mtcars[mtcars$wt == max(mtcars$wt), "wt", drop = FALSE] 
#      wt 
# Lincoln Continental 5.424 

OR

使用which.max()通过YCW的建议。

mtcars[which.max(mtcars$wt), "wt", drop = FALSE] 
    #      wt 
    # Lincoln Continental 5.424 

2.最低重量列的值

要打印wt柱的最小(使用min()功能)或最低值

mtcars[mtcars$wt == min(mtcars$wt), "wt", drop = FALSE] 
#     wt 
# Lotus Europa 1.513 

OR

按照ycw的建议使用which.min()

mtcars[which.min(mtcars$wt), "wt", drop = FALSE] 
#     wt 
# Lotus Europa 1.513 
+1

是的,看到了谢谢。即使我正在观察。更新了答案。 –

+0

@ycw从未使用过'which.max'。谢谢你会看到如何工作。 –

+0

工程像魅力! 'which.max'功能。 –

0

如果你想最大值的行数,使用which.max()

> which.max(mtcars$wt) 
[1] 16 

要获取所有信息该行中,用它来子集数据帧:

> mtcars[which.max(mtcars$wt),] 
        mpg cyl disp hp drat wt qsec vs am gear carb 
Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4 

选择数据的元素。按名称框架只是将它们插入为字符串。如果你想要多行或多列,你必须将它们放入一个带有c()的向量中。

> mtcars['Mazda RX4 Wag','wt'] 
[1] 2.875 
相关问题