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,...) :object'。'找不到
我从http://r4ds.had.co.nz/iteration.html#shortcuts获得了第二行,但我不记得此代码中对点的解释。作者写道:
我在这里用过。作为代词:它指的是当前的列表元素 (就像我提到的当前索引一样 循环)。
但是我不明白列表元素在这种情况下是“当前”意味着什么。
为什么第二行在第二行没有出错时会出错?
答案 0 :(得分:6)
Dot对R没有特殊意义。%>%
解释了点。
以通常的函数调用形式表示它正在运行:
"%>%"(mtcars, split(.$cyl))
并且%>%
用于处理其参数的规则在其帮助文件中定义:
help("%>%", "magrittr")