中文 · PDF 72
后续参数是用于筛选数据框的表达式。例如,我们可以用以下代码选择 1 月 1 日的所有航班:
filter(flights, month == 1, day == 1) #> # A tibble: 842 × 19 #> year month day dep_time sched_dep_time dep_delay #> #> 1 2013 1 1 517 515 2 #> 2 2013 1 1 533 529 4 #> 3 2013 1 1 542 540 2 #> 4 2013 1 1 544 545 -1 #> 5 2013 1 1 554 600 -6 #> 6 2013 1 1 554 558 -4 #> # ... 还有 836 行,以及 13 个变量: #> # arr_time , sched_arr_time , arr_delay , #> # carrier , flight , tailnum ,origin , #> # dest , air_time , distance , hour , #> # minute , time_hour
当你运行这行代码时,dplyr 会执行筛选操作并返回一个新的数据框。dplyr 的函数从不修改其输入,因此如果你想保存结果,就需要使用赋值运算符 <-:
jan1 <- filter(flights, month == 1, day == 1)
R 要么将结果打印出来,要么将其保存到一个变量中。如果你想两者兼得,可以把赋值语句用括号包起来:
(dec25 <- filter(flights, month == 12, day == 25)) #> # 一个 tibble:719 行 × 19 列 #> year month day dep_time sched_dep_time dep_delay #> #> 1 2013 12 25 456 500 -4 #> 2 2013 12 25 524 515 9 #> 3 2013 12 25 542 540 2 #> 4 2013 12 25 546 550 -4 #> 5 2013 12 25 556 600 -4 #> 6 2013 12 25 557 600 -3 #> # ... 还有 713 行,以及 13 个更多变量: #> # arr_time , sched_arr_time , arr_delay , #> # carrier , flight , tailnum ,origin , #> # dest , air_time , distance , hour , #> # minute , time_hour
比较运算
要想有效地使用筛选,你必须知道如何使用比较运算符来选择你想要的观测。R 提供了标准的一套运算符:>、>=、<、<=、!=(不等于)和 ==(等于)。