![](/img/trans.png)
[英]What are the differences between R's new native pipe `|>` and the magrittr pipe `%>%`?
[英]Differences between %.% (dplyr) and %>% (magrittr)
dplyr
包引入了%.%
運算符以將左側作為右側函數的參數傳遞,類似於 *NIX 管道。 magrittr
包是一個更輕量級的包,它的存在僅用於定義類似管道的運算符。
然而,一個使用%.%
,另一個使用%>%
。
兩者之間有什么區別嗎? 即使在dplyr
代碼中,我也可以只使用%>%
,還是會導致細微的錯誤?
在檢查代碼時,它們在早期采用了截然不同的路徑,因此簡單的眼球比較會表明它們是不同的。 當我在網上搜索它們時,我找不到任何記錄在案的內容,也沒有在文檔本身中找到任何內容。
查看當前新聞文件中的第一項:
dplyr 現在從 magrittr (#330) 導入
%>%
。 我建議你使用它而不是%.%
因為它更容易輸入(因為你可以按住 shift 鍵)並且更靈活
dplyr 現在從 magrittr 導入%>%
並默認使用它。 有關詳細信息,請參閱此答案。
差異包括
你可以使用一個.
作為左側的占位符,例如
iris %>% plot(Sepal.Length ~ Sepal.Width, data = .)
%>%
尊重(rhs)
,例如
1:10 %>% (call("sum")) 1:10 %>% (function(x) x^2 + 2*x)
有關更有用的示例,請參閱
https://gist.github.com/anonymous/0c69b019d0b4f6ae5050
對於單參數函數調用,您可以省略括號:
"2014-05-18" %>% as.Date
我討厭這樣說,但是%>%應該被禁止。 沒有人描述了它的實際作用,似乎沒有改變。 我們不應該這樣胡扯,因為它太混亂了。 我一直在閱讀的每種解釋都矛盾或沒有道理。 我們能擺脫這個運算符或它是什么嗎? 我經常使用R,並找到其他所有函數或運算符作為自我解釋。 這是垃圾,只會使它無法使用,直到有人可以清楚地說明或標准化它。 最好只是在那之前擺脫它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.