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