【发布时间】:2016-08-06 18:15:40
【问题描述】:
通过使用datasets 包,我需要创建一个新的数据框,其中只有带自动变速器的汽车。
mtcars
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
... more cars ...
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
我试过了。
local({pkg <- select.list(sort(.packages(all.available = TRUE)),graphics=TRUE)
if(nchar(pkg)) library(pkg, character.only=TRUE)})
automatic = which(am==1)
automatic
# [1] 1 2 3 18 19 20 26 27 28 29 30 31 32
然后我尝试用自动车过滤 mtcars 数据框。
mtcars[automatic, am]
确实是过滤,只显示自动变速箱的汽车,但我想还有其他方法可以做到这一点。
我还需要创建另一个数据框,其中包含小于 16 英里/加仑 (mpg) 的车辆,以及车辆重量超过 3000 天秤座的向量。
希望你们能帮帮我,我有点失落。谢谢。
【问题讨论】:
-
使用 dplyr,你可以试试:mtcars %>% filter(am == "1")
-
有什么理由不想使用
subset?例如subset(mtcars, am == 1)或subset(mtcars, mpg < 16)等等? (我不确定“数据集包”是什么) -
你做得对,但有多个条件逻辑向量(例如
automatic <- mtcars$am == 1)更灵活,因为你可以使用逻辑运算符&或|!来以各种方式组合它们。如果你使用数字索引,你就不能这样做。 -
@mathematical.coffee OP 一定是指“数据集包”。 (做
find("mtcars")看看那实际上是mtcars生活的地方。)
标签: r dataframe statistics dataset