情境
在R语言中,有一件事很烦人。
我们不得不给每个中间生成的数据集命名。对我来说起名字可太难了。看看下方我的操作:
# 首先,我先筛选出Amerian Airline公司的航班。为此,我绞尽脑汁想出了flightsDelay这个变量
flightsDelay <- filter(flights,carrier == "AA")
# 然后,我嫌数据有些多余,我只想要这个航班dep_delay和distance这两个数据,然后我又不得不想出flightsSimple这个变量。
flightsSimple <- select(flightsDelay,dep_delay,distance)
# 最后,我用ggplot做一个条形图。看看不同距离的的航班有多少。
ggplot(flightsSimple)+geom_bar(mapping=aes(x=distance))
为了演示用,我做的操作有点多余,但是我们看到了,在这个过程中,我需要想出不同的变量名(flightsDelay,flightsSimple)来承接中间数据集。
为了避免反复起名字,我们就需要用管道%>%了。
管道pipe的用法
你了解linux的话,你应该知道linux也有管道。就是把输出结果输入给下一个函数。
比如说,出现了下面的语句:
x %>% f(y)
这里的x,y是变量,f代表函数。按照管道的理解,就是把x当成输入,交给f函数。
等同于:
f(x,y)
那如果再复杂一些
x%>%f(y)%>%g(z)
这就等同于
g(f(x,y),z)
那按照这个逻辑,我在前面举的例子,就可以直接简化成下面的代码:
filter(flights,carrier=="AA") %>% select(dep_delay,distance) %>% ggplot()+geom_bar(mapping=aes(x=distance))
你瞧,为了生成这张图,我一个新变量也没有生成。