2017-10-20 182 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 
相關問題