R语言中懒得重复中间变量?用管道%>%啊

情境

在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))

在这里插入图片描述
你瞧,为了生成这张图,我一个新变量也没有生成。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值