簡體   English   中英

為什么在調用R的split函數時不能使用顯式形式而不是magrittr管道?

[英]Why can't I use the explicit form instead of a magrittr pipe in a call to R's split function?

library(magrittr)

mtcars %>% split(.$cyl)

split(mtcars, .$cyl)

我對第二行為什么起作用感到困惑,但是第三行卻沒有。

我正在閱讀http://r4ds.had.co.nz/ ,其中指出

在此處輸入圖片說明 http://r4ds.had.co.nz/transform.html#combining-multiple-operations-with-the-pipe

這表明第二和第三行應該相同,但是第三行給出了錯誤

split.default(x = seq_len(nrow(x)),f = f,drop = drop,...)中的錯誤:對象'。' 未找到

我從http://r4ds.had.co.nz/iteration.html#shortcuts獲得了第二行,但是我不記得這段代碼中對點的解釋。 作者寫道:

在這里我已經習慣了。 作為代詞:它引用當前列表元素(與我引用for循環中當前索引的方式相同)。

但是我不明白在這種情況下列表元素是“當前的”意味着什么。

當第二行不顯示時,為什么第三行顯示錯誤?

點對R沒有特殊含義。解釋點的是%>%

以通常的函數調用形式表示它正在運行以下命令:

"%>%"(mtcars, split(.$cyl))

在其幫助文件中定義了%>%用於處理其參數的規則:

help("%>%", "magrittr")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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