Есть ли быстрый способ в базе R для подмножества фрейма данных на основе операционного релятора? (например, MPG>20)

#r

#r

Вопрос:

Я уверен, что с этим можно справиться намного проще с помощью таких пакетов, как Tidyverse. Тем не менее, я пытаюсь решить ее, просто используя базу R. Чтобы проиллюстрировать проблему, я использовал набор данных «mtcars».

Пример: подмножество только для автомобилей с MPG> 20

1.) моей первой интуицией было попробовать следующее:

 mtcars[mtcars$mpg>20]
 

Что, что неудивительно, не работает.

2.) Во-вторых, я понял, что получаю результат при использовании:

 mtcars$mpg[mtcars$mpg>20]
[1] 21.0 21.0 22.8 21.4 24.4 22.8 32.4 30.4 33.9 21.5 27.3 26.0 30.4 21.4
 

3.) Это не то, чего я хочу, хотя — я хочу сохранить весь DF, поэтому я сделал следующее:

 mtcars$mpg>20 #gives me the Boolean values TRUE, FALSE 
mtcars$newcolum <- mtcars$mpg>20 #creating a new column 
subset(mtcars, newcolum==TRUE) #subsetting 
 

Это приводит к подмножеству фрейма данных, который я намеревался извлечь. Тем не менее, мне кажется, что это довольно утомительно, и я слишком усложняю шаги. Есть ли у вас какие-либо полезные советы о том, как можно быстрее достичь того же результата?

Большое вам спасибо! Крис

Комментарии:

1. Попробуйте mtcars[mtcars$mpg>20,]

2. Именно там, где я ошибся… пропустил детали. Oof. Большое вам спасибо за быструю помощь

3. Отлично, я добавил в качестве решения небольшое объяснение. Надеюсь, это поможет!

Ответ №1:

Для подмножества in R требуются обе строки и столбцы, поэтому вы можете использовать , :

 #Code
new <- mtcars[mtcars$mpg>20,]