如何仅使用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/