簡體   English   中英

%.% (dplyr) 和 %>% (magrittr) 之間的差異

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM