如何仅使用purrr包从嵌套列表中提取元素?在这种情况下,我想在分割data.frame之后获得截距的向量。我已经使用lapply()完成了我所需要的,但是我只想使用purrr包中的函数。

library(purrr)
mtcars %>%
split(.$cyl) %>%
map(  ~lm(mpg ~ wt, data = .)) %>%        # shorthand  NOTE: ~ lm
lapply(function(x) x[[1]] [1]) %>% # extract intercepts  <==is there a purrr function for this line?
as_vector()                               # convert to vector

我已经尝试过map()和at_depth(),但似乎没有任何工作适合我。

最佳答案

map函数具有一些用于索引嵌套列表的简写代码。帮助页面中的一个有用的代码段:



因此,将代码用于嵌套索引以及map_dbl(可简化为向量),您可以简单地执行以下操作:

mtcars %>%
    split(.$cyl) %>%
    map(~lm(mpg ~ wt, data = .)) %>%
    map_dbl(c(1, 1))

       4        6        8
39.57120 28.40884 23.86803

我还发现这个引入purrr 0.1.0的blog post很有用,因为它给出了我最终使用的速记编码的更多示例。

关于r - 仅使用purrr包中的函数从嵌套列表中提取元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34751624/

10-12 20:37