С помощью пакета datasets
мне нужно создать новый фрейм данных только с автомобилями с автоматической передачей.Как создать в R фрейм данных на основе определенных условий
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 миллиметров на галлон (миль на галлон) и вектором с весом транспортных средств более 3000 либр.
Надеюсь, вы, ребята, можете мне помочь в этом, я чувствую себя немного потерянным. Благодарю.
с помощью dplyr, вы можете попробовать: mtcars%>% filter (am == "1") – MLavoie
Есть ли причина, по которой вы не хотите использовать 'subset'? например 'subset (mtcars, am == 1)' или 'subset (mtcars, mpg <16)' и т. д.? (Я не уверен, что такое пакет пакетов данных) –
Вы делаете это правильно, но с более чем одним условием логические векторы (например, 'automatic <- mtcars $ am == 1') являются более гибкими, поскольку вы можете использовать логические операторы '' '' '' '' '' '' '' '' ', чтобы объединить их по-разному. Если вы используете числовые индексы, вы не можете этого сделать. –