r-如何排除dplyr中某个范围内的值



如果我想选择变量在1000-2000范围内的观测值,我会这样做:

filteredData <- unfilteredData%>% filter(variable %in% (1000:2000))

但是,如何排除1000-2000范围内的变量?我只想要那些<1000或>2000

我认为在variable前面加一个感叹号就可以了。

filteredData <- unfilteredData %>% filter(!variable %in% (1000:2000))

这只是";在范围内不可变";。

或者,正如Adam指出的那样

filteredData <- unfilteredData %>%
filter(variable < 1000) %>%
filter(variable > 2000) 

也是一种可行的方法。通往罗马的多路道路!

使用mtcars示例:

> mtcars %>% filter(!(hp %in% (100:200)))
mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
> 

我们不包括马力在100到200之间的车辆。

最新更新