2021-03-21R语言中的管道符 %>%

作为R语言基础之一的 %>% 应用非常广泛,但是我却一直没有系统地学习,实在不应该,今天研究记述一下。

什么是%>%

%>% 作为一种管道符,意思是 %>% 把左边的输出传递给右边的函数作为输入。最早来自于R包magrittr,magrittr包是一个高效的专业管道操作工具包,主要定义了4个管道操作符,分另是%>% 向右操作符(forward-pipe operator), %T>% 向左操作符(tee operator), %$% 解释操作符(exposition pipe-operator) 和 %<>% 复合赋值操作符(compound assignment pipe-operator)。其中%>%最为常用,有机会再聊其它三个,今天只说%>%
R包 dplyr 调用了 magrittr 包,这就是为什么很多用到 %>% 时都会调用 dplyr 的原因。

怎么用%>%

%>%的使用异常简单,就是左边传递给右边,近似shell中的“ | ” ,需要注意要与shell的输出重定向“ > ”相区分,话不多说直接上示例:

library(dplyr)  #调用依赖
#分步法示例
data <- rep(4,4)  #定义输入数据四个四
unidata <- unique(data)   #进行去重
unidata
[1] 4
#管道符使用示例
pipeunidata <- rep(4,4) %>% unique() #输入数据去重
# 可以理解为 rep(4,4)的输出传递给了unique(),然后去重之后结果赋值为 pipeunidata
pipeunidata #可见结果与分步法一致
[1] 4

可以很明显的看出使用管道符之后,步骤被简化了,一步就得到了去重之后的数据,这就引出了管道符的价值。

为啥用%>%

R语言的每次赋值都会占用相应的内存,管道符的使用可以有效减少赋值以减少内存占用。另外,代码的简化也会带来相应的美感和可读性。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容