地图功能的不同结果

时间:2019-02-26 18:42:11

标签: r purrr

我从库 purr 中的 map 函数得到了不同的结果。这是Hadley的书R,用于数据科学中使用的以下代码。为什么会这样?

代码1

models1 <- mtcars %>% split(.$cyl) %>% 
  map(function(df) lm(mpg ~ wt, data=mtcars))

models1 %>% 
  map(summary) %>% 
  map_dbl(~.$r.squared)

code1-结果

        4         6         8 
0.5086326 0.4645102 0.4229655 

代码2

models2 <- mtcars %>% split(.$cyl) %>% 
  map(~lm(mpg ~ wt, data=.))

models2 %>% 
  map(summary) %>% 
  map_dbl(~.$r.squared)

代码2结果

        4         6         8 
0.7528328 0.7528328 0.7528328 

1 个答案:

答案 0 :(得分:1)

问题是您要将整个数据集mtcars传递给代码1中的lm()函数,而不是传递在{{1中的函数定义中声明的df }}如果将map(function(df) ...)更改为mtcars,则问题已解决

df

reprex package(v0.2.1)于2019-02-26创建