R语言入门:函数介绍(2)
%>%
大家好,绝艺我又回来更新了!
本期主要内容是介绍上次预告的中缀函数%>%,该函数封装于"dplyr"包中。同时剧透下一期内容为有同学点播要求学习的reshape2包中的melt()函数和cast()函数。
函数介绍(3)
%>%
%>%函数,本质上而言就是编程中常用的管道符。什么叫管道符呢?顾名思义,就是像一个管道一样,把数据传输过去。在R中,%>%函数的作用是将上一个函数运行的结果作为下一个函数的第一个参数输入进去。那么这个功能就显得十分强大了,因为我们知道,大多数的R函数,其第一个参数通常是数据,这就使得我们能够简洁清晰的将数据的变化流程和对数据的操作展示出来。
话不多书,我们看实例吧!
%>%的常见用法
本期仍然以我们非常熟悉的"mtcars"数据集作为示例来进行展示。
我们知道,"mtcars"数据集是长这样的,每一行都是一个车型,然后有mpg、cyl、hp、drat、wt、qsec、vs、am、gear、carb这些变量。
![0138c4bb9df88c9a2ca38e0e37c7e85f.png](https://i-blog.csdnimg.cn/blog_migrate/4a0b6c00b6236a66fa701a1e8c1caf49.png)
那么,如果我们想要在这些车型中,筛选出cyl为4或6且mpg小于25且wt<3的所有车型,传统情况下应该如何进行取子集操作呢?
![ec94503c0a8e2ff9bd61c4a17fe01354.png](https://i-blog.csdnimg.cn/blog_migrate/38744fe42e3b65041b841cca559b2a24.png)
那么显然,通过不断地向which()函数中添加筛选条件,我终于还是写出了这个东西,但是对于大多数人而言,这段代码的可读性太差了,需要非常艰难地才能看懂它的含义和逻辑关系是什么。下面让我们使用%>%来尝试解决这个问题吧!
![c4336f883b363c2e08e42f5daed21cb9.png](https://i-blog.csdnimg.cn/blog_migrate/b8b471fc3c31d0d84a9824d891456c1c.png)
通过取子集函数subset()的不断传输,我们可以清晰地看出我们对数据设置的筛选条件,并可以精确地做出改动。
注:subset(data, formula),其中data是数据,formula是设置的筛选条件。管道符将上一个函数的结果数据作为下一个函数的第一个参数数据输入,以此来实现不断地数据传输处理。
不仅是在数据清理方面,管道符还可以直接将数据输入到绘图、运算等多种函数中,实现非常灵活的功能。
![c6f374461aaeb66dc16556f9b3a59cc8.png](https://i-blog.csdnimg.cn/blog_migrate/db84b7c2b48dc4e77421467d2b3d26bf.png)
![647d94ec47e6340459aa14349d4f171b.png](https://i-blog.csdnimg.cn/blog_migrate/97c3581ba0db638318bdf79f6ac774dd.png)
注:select()函数可以选择在数据集中保留哪些变量,参数为select(data, variable)。
卑微绝艺,在线求转发、关注~
绝艺