如何在dplyr的filter函数中正确使用all?附示例代码
筛选mtcars中自动挡且4缸的车型
如果你需要从mtcars数据集中提取出**自动挡(am == 1)且4缸(cyl == 4)**的观测记录,用dplyr包的filter()配合管道操作就能轻松实现,具体代码如下:
library(dplyr) mtcars %>% filter(am == 1 & cyl == 4)
执行这段代码后,得到的结果如下(整理为表格更易读):
| mpg | cyl | disp | hp | drat | wt | qsec | vs | am | gear | carb |
|---|---|---|---|---|---|---|---|---|---|---|
| 22.8 | 4 | 108.0 | 93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 | 1 |
| 32.4 | 4 | 78.7 | 66 | 4.08 | 2.200 | 19.47 | 1 | 1 | 4 | 1 |
| 30.4 | 4 | 75.7 | 52 | 4.93 | 1.615 | 18.52 | 1 | 1 | 4 | 2 |
| 33.9 | 4 | 71.1 | 65 | 4.22 | 1.835 | 19.90 | 1 | 1 | 4 | 1 |
| 27.3 | 4 | 79.0 | 66 | 4.08 | 1.935 | 18.90 | 1 | 1 | 4 | 1 |
| 26.0 | 4 | 120.3 | 91 | 4.43 | 2.140 | 16.70 | 0 | 1 | 5 | 2 |
| 30.4 | 4 | 95.1 | 113 | 3.77 | 1.513 | 16.90 | 1 | 1 | 5 | 2 |
| 21.4 | 4 | 121.0 | 109 | 4.11 | 2.780 | 18.60 | 1 | 1 | 4 | 2 |
小提示
- 在
dplyr的filter()里,你也可以用逗号替代&,比如filter(am == 1, cyl == 4),效果完全一致,代码看起来更简洁。 - 运行前别忘了先加载
dplyr包(或者tidyverse元包),不然管道符%>%和filter()会报错哦。
内容的提问来源于stack exchange,提问作者Konrad
相关产品推荐
相关产品推荐

