美文网首页
2021-03-21R语言中的管道符 %>%

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

作者: 阿乜太帅 | 来源:发表于2021-03-21 14:50 被阅读0次

    作为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语言的每次赋值都会占用相应的内存,管道符的使用可以有效减少赋值以减少内存占用。另外,代码的简化也会带来相应的美感和可读性。

    相关文章

      网友评论

          本文标题:2021-03-21R语言中的管道符 %>%

          本文链接:https://www.haomeiwen.com/subject/xswncltx.html