我不知道如何找到哪一行会为数据框中的特定列提供最高价值
例如下面。
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 ...
我专注于wt列并试图查看哪一个具有最高值,这将是2.88的马自达RX4 Wag
另外,如何使用名称而不是向量来查找特定值?
例如Mazda RX4 Wag wt。我试过了df[df$Mazda RX4 Wag,df$wt]
,但却给了我一个错误。
由于
答案 0 :(得分:2)
至于你的第一个问题。
subset(mtcars, wt == max(wt))[, "wt"]
[1] 5.424
至第二个问题
mtcars[row.names(mtcars) == "Mazda RX4 Wag", "wt"]
[1] 2.875
答案 1 :(得分:1)
如果您想要最大值的行号,请使用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
要按名称选择data.frame的元素,只需将它们作为字符串插入即可。如果您想要多个行或列,则必须将它们放入带有c()
的矢量中。
> mtcars['Mazda RX4 Wag','wt']
[1] 2.875
答案 2 :(得分:0)
也许是这样的:
which(name.of.datatable == max(name.of.datatable[, 7]), arr.ind = T)
答案 3 :(得分:0)
drop = FALSE
可让您打印汽车名称,即您具有最高或最低wt
值的行名称
<强> 1。 wt列的最高值
打印最大值(使用max()
功能)或wt
列的最高值。
mtcars[mtcars$wt == max(mtcars$wt), "wt", drop = FALSE]
# wt
# Lincoln Continental 5.424
或强>
按照ycw的建议使用which.max()
。
mtcars[which.max(mtcars$wt), "wt", drop = FALSE]
# wt
# Lincoln Continental 5.424
<强> 2。 wt列的最低值
打印最小值(使用min()
功能)或wt
列
mtcars[mtcars$wt == min(mtcars$wt), "wt", drop = FALSE]
# wt
# Lotus Europa 1.513
或强>
按照ycw的建议使用which.min()
。
mtcars[which.min(mtcars$wt), "wt", drop = FALSE]
# wt
# Lotus Europa 1.513