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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。