library(purrr)
library(tidyverse)
library(twidlr)
# this works
mtcars %>% lm(mpg ~ wt)
# this does not work
mtcars %>% split(.$cyl) %>% map(~ lm(mpg ~ wt))
# this does work
mtcars %>% split(.$cyl) %>% map(~ lm(., mpg ~ wt))
twidlr的承诺是它可以与管道配合使用,但它似乎只与“。”一致。惯例,还是我错过了什么?
答案 0 :(得分:1)
%>%
将前一个对象作为函数的第一个参数插入。但是表达式中的%>%
:
mtcars %>% split(.$cyl) %>% map(~ lm(mpg ~ wt))
适用于插入函数mtcars %>% split(.$cyl)
的对象map()
,而不是函数lm()
。因此管道仍在工作,twidlr仍在替换lm
的功能,但表达式无法知道你想要为lm提供第一个参数。
对于任何map
表达式都是如此。例如:
1:4 %>% map(~ mean())
不知道在mean()
函数中插入一个参数。