马格里特

CRAN状态 Codecov测试覆盖率 R构建状态

概述

magrittr包提供了一组操作符,这些操作符使您的代码可读性更强:

操作员将其左侧值向前传递到出现在右侧的表达式,即可以替换f(x)具有x%>%f(),其中%>%是(主)管道操作员。当耦合几个用管道操作符调用函数,好处会更多显而易见。考虑这个伪示例:

数据(_D)<-
  读取.csv(“/path/to/data/file.csv”)%>%
  子集(变量a>x)%>%
  转型(变量c=变量a/变量b)%>%
  (100)

执行四个操作以获得所需的数据集,以及它们是按照自然的顺序写的:与执行的顺序相同。此外,不需要临时变量。如果还有另一个手术需要,添加到操作序列中很简单在任何需要的地方。

如果你是马格里特的新手,最好的出发点是管道章节以R表示数据科学。

安装

#获取magrittr最简单的方法是安装整个tidyverse:
安装程序包(“tidyverse”)

#或者,只安装magrittr:
安装程序包(“马格里特”)

#或者GitHub的开发版本:
#install.packages(“devtools”)
开发工具::安装github(“tidyverse/magrittr”)

用法

基本管道

这里,“等价物”在技术上并不准确:评估是非标准,左侧在传递到之前进行评估右侧表达式。然而,在大多数情况下,这没有实际意义。

参数占位符

重新使用属性占位符

右侧表达式。但是,当占位符仅出现时在嵌套表达式中,magrittr仍将应用第一个参数规则。原因是在大多数情况下,这会产生更干净的代码。

x%>%f(y=nrow(.),z=ncol(.))等于f(x,y=nrow(x),z=ncol(x))

可以通过将右侧包含在支撑:

x%>%{f(y=nrow(.),z=ncol(.))}等于f(y=nrow(x),z=ncol(x))

建筑(一元)功能

以开头的任何管道.将返回函数它可以稍后用于将管道应用于值。建筑物因此,magrittr中的函数类似于构建其他值。

(f)<-.%>%余弦%>%
#等于
(f)<- 功能(.)(余弦(.))

管道外露变量

许多函数接受数据参数,例如勒姆骨料,这在数据所在的管道中非常有用首先处理,然后传递给这样的函数。还有没有数据参数的函数,对于公开数据中的变量。这是用%$%操作员:

虹膜%>%
  子集(分隔长度> 意思是(萼片长度)%$%
  科尔(隔板长度、隔板宽度)
#> [1] 0.3361992

数据帧(z(z)= rnorm公司(100))%$%
  ts.槽(z)

行为准则

请注意,magrittr项目发布时带有贡献者行为准则。通过参与此项目,您同意遵守根据其条款。