R语言
pipeOp
位于 base
包(package)。 说明
将值通过管道传送到调用表达式或函数表达式中。
用法
lhs |> rhs
参数
lhs |
表达式产生一个值。 |
rhs |
一个调用表达式。 |
细节
管道表达式将左侧表达式 lhs
的结果传递或通过管道传输到右侧表达式 rhs
。
lhs
作为第一个参数插入到调用中。因此 x |> f(y)
被解释为 f(x, y)
。
为了避免歧义,rhs
调用中的函数在语法上可能不是特殊的,例如 +
或 if
。
还可以在 rhs
调用中使用带有占位符 _
的命名参数来指定 lhs
的插入位置。占位符只能在 rhs
上出现一次。
作为实验性函数,占位符也可以用作提取调用中的第一个参数,例如 _$coef
。更一般地,它可以用作提取链的头部,例如 _$coef[[2]]
,使用一系列提取函数 $
、 [
、 [[
或 @
。
管道表示法允许以某种方式编写嵌套的调用序列,从而使处理步骤的顺序更容易遵循。
目前,管道操作是作为语法转换来实现的。因此,写为 x |> f(y)
的表达式将被解析为 f(x,
y)
。值得强调的是,虽然管道中的代码是按顺序编写的,但适用于求值的常规 R 语义,因此管道表达式仅在首次在 rhs
表达式中使用时才会求值。
值
返回计算转换后的表达式的结果。
背景
前向管道运算符的灵感来自于 magrittr
包中引入的管道,但更加精简。它类似于其他语言(包括 F#、Julia 和 JavaScript)中引入的管道或管道运算符。
例子
# simple uses:
mtcars |> head() # same as head(mtcars)
mtcars |> head(2) # same as head(mtcars, 2)
mtcars |> subset(cyl == 4) |> nrow() # same as nrow(subset(mtcars, cyl == 4))
# to pass the lhs into an argument other than the first, either
# use the _ placeholder with a named argument:
mtcars |> subset(cyl == 4) |> lm(mpg ~ disp, data = _)
# or use an anonymous function:
mtcars |> subset(cyl == 4) |> (function(d) lm(mpg ~ disp, data = d))()
mtcars |> subset(cyl == 4) |> (\(d) lm(mpg ~ disp, data = d))()
# or explicitly name the argument(s) before the "one":
mtcars |> subset(cyl == 4) |> lm(formula = mpg ~ disp)
# using the placeholder as the head of an extraction chain:
mtcars |> subset(cyl == 4) |> lm(formula = mpg ~ disp) |> _$coef[[2]]
# the pipe operator is implemented as a syntax transformation:
quote(mtcars |> subset(cyl == 4) |> nrow())
# regular R evaluation semantics apply
stop() |> (function(...) {})() # stop() is not used on RHS so is not evaluated
相关用法
- R pushBack 将文本推回连接
- R paste 连接字符串
- R plot 通用 X-Y 绘图
- R prod 向量元素的乘积
- R print 打印值
- R print.default 默认打印
- R polyroot 求实数或复数多项式的零点
- R pos.to.env 将搜索路径中的位置转换为环境
- R pmatch 部分字符串匹配
- R print.data.frame 打印 DataFrame
- R parse 解析 R 表达式
- R proc.time R的运行时间
- R prmatrix 打印矩阵,旧式
- R proportions 将表条目表示为边表的分数
- R pcre_config PCRE 的报告配置选项
- R pretty 漂亮的断点
- R path.expand 展开文件路径
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Forward Pipe Operator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。