Подмножество нескольких условий с одной переменной за один шаг? - PullRequest
1 голос
/ 30 марта 2020

Я надеюсь, что смогу объяснить, что я пытаюсь сделать в достаточной мере. Я работаю в R и для набора данных я пытаюсь сохранить только наблюдения, где для одной переменной другая переменная удовлетворяет двум условиям.

В частности, я хочу сохранить только те строки, в которых для определенного "цил" есть хотя бы одно значение миль на галлон> 20 и хотя бы одно <20. Вот некоторые примеры данных из mtcars, аналогичные тем, с которыми я работаю. </p>

     mpg cyl
1  21.0   6
2  21.0   6
3  22.8   4
4  21.4   6
5  18.7   8
6  18.1   6
7  14.3   8
8  24.4   4
9  22.8   4
10 19.2   6
11 17.8   6
12 16.4   8
13 17.3   8
14 15.2   8
15 10.4   8
16 10.4   8
17 14.7   8
18 32.4   4
19 30.4   4
20 33.9   4

В идеале мой вывод для приведенного выше примера будет следующим:

     mpg cyl
1  21.0   6
2  21.0   6
4  21.4   6
6  18.1   6
10 19.2   6
11 17.8   6

Заранее спасибо !

1 Ответ

1 голос
/ 30 марта 2020

Предполагая, что ваш ввод данных - DF, попробуйте следующее:

library(dplyr)

DF %>%
  group_by(cyl) %>%
  filter(sum(mpg > 20) > 1 & sum(mpg < 20) > 1)

# A tibble: 7 x 2
# Groups:   cyl [1]
#    mpg   cyl
#  <dbl> <dbl>
# 1  21       6
# 2  21       6
# 3  21.4     6
# 4  18.1     6
# 5  19.2     6
# 6  17.8     6
# 7  19.7     6

data

DF <- mtcars[,1:2] 
...