当我们查看R中的mtcars
数据集时:
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
我想选择具有6个气缸的马自达车型(cyl
为6)并查看哪些车具有最大马力hp
。或者,或者,我想看看哪个具有4个柱面的Merc模型具有最高hp
。
我该怎么做?我是子集吗?或者也许是grep?
答案 0 :(得分:0)
您想要检查两个条件:汽车的型号名称和汽缸编号,对吗?
您可以将数据子集化为满足(双重)条件的行,然后查看哪些剩余行具有列hp
bestcar <- function(carname, cyl_nr){
inds <- (grepl(carname, rownames(mtcars)) & mtcars$cyl == cyl_nr)
subdf <- mtcars[inds, ]
rownames(subdf)[which.max(subdf$hp)]
}
bestcar("Mazda", 6)
# "Mazda RX4"
bestcar("Merc", 4)
# "Merc 230"