使用purrr
时,我经常发现自己在变量名称中做出了错误的选择。
例如,在purrr的github页面上获取代码。
library(purrr)
mtcars %>%
split(.$cyl)
split(.$cyl)
中的我经常犯错误使用split(cyl)
。这似乎是最明显的选择,因为它与tidyverse
等其他select(cyl)
命令一致。
我的问题是为什么.$
位于变量名称前面。
答案 0 :(得分:8)
.
表示数据对象,并使用$
提取列。它也可以接受
mtcars %>%
split(.[['cyl']]
在mutate/summarise/group_by/select/arrange
等中,我们可以简单地传递列名,但由于split
是base R
函数,因此它不同,它无法找到数据集的环境除非我们提取列
我们在tidyverse
中可以选择的一个选项是nest
除'cyl'之外的所有其他变量,即
mtcars %>%
nest(-cyl)
现在,我们有一个名为'data'的list
列,其中包含所有其他列,作为'data.frame`s的list