在使用purrr时,我经常发现自己在变量名中做了错误的选择。
例如,以咕噜的github页面上的代码为例。
library(purrr)
mtcars %>%
split(.$cyl)在split(.$cyl)中,我经常犯使用split(cyl)的错误。这似乎是最明显的选择,因为它与其他tidyverse命令(如select(cyl) )是一致的。
我的问题是为什么变量名前面的.$。
发布于 2018-03-06 12:59:04
.表示数据对象,通过使用$提取列。它也可以接受
mtcars %>%
split(.[['cyl']]在mutate/summarise/group_by/select/arrange等中,我们可以简单地传递列名,但是在那里它是不同的,因为split是一个base R函数,除非我们提取列,否则它无法找到列'cyl‘所在的数据集环境。
在tidyverse中,我们可以做的一种选择是nest除“cyl”之外的所有其他变量。
mtcars %>%
nest(-cyl) 现在,我们有一个名为'data‘的list列,它包含所有其他列,作为'data.frame`s’的list
有了新版本的dplyr (0.8.1测试),就会出现@Moody_Mudskipper注释的group_split
mtcars %>%
group_split(cyl)https://stackoverflow.com/questions/49131438
复制相似问题