清晰的purrr语法

时间:2018-03-06 12:57:47

标签: r purrr

使用purrr时,我经常发现自己在变量名称中做出了错误的选择。

例如,在purrr的github页面上获取代码。

library(purrr)

mtcars %>%
  split(.$cyl)
split(.$cyl)中的

我经常犯错误使用split(cyl)。这似乎是最明显的选择,因为它与tidyverse等其他select(cyl)命令一致。

我的问题是为什么.$位于变量名称前面。

1 个答案:

答案 0 :(得分:8)

.表示数据对象,并使用$提取列。它也可以接受

mtcars %>%
    split(.[['cyl']]

mutate/summarise/group_by/select/arrange等中,我们可以简单地传递列名,但由于splitbase R函数,因此它不同,它无法找到数据集的环境除非我们提取列

,否则列'cyl'

我们在tidyverse中可以选择的一个选项是nest除'cyl'之外的所有其他变量,即

mtcars %>%
    nest(-cyl) 

现在,我们有一个名为'data'的list列,其中包含所有其他列,作为'data.frame`s的list