Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用purrr包中的函数从嵌套列表中提取元素_R_Purrr - Fatal编程技术网

仅使用purrr包中的函数从嵌套列表中提取元素

仅使用purrr包中的函数从嵌套列表中提取元素,r,purrr,R,Purrr,如何仅使用purrr包从嵌套列表中提取元素?在本例中,我希望在分割data.frame之后获得截获向量。我已经使用lappy()完成了我所需要的,但我只想使用purr包中的函数 library(purrr) mtcars %>% split(.$cyl) %>% map( ~lm(mpg ~ wt, data = .)) %>% # shorthand NOTE: ~ lm lapply(function(x) x[[1]] [1]) %>% #

如何仅使用purrr包从嵌套列表中提取元素?在本例中,我希望在分割data.frame之后获得截获向量。我已经使用lappy()完成了我所需要的,但我只想使用purr包中的函数

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
库(purrr)
mtcars%>%
拆分(.$cyl)%>%
地图(~lm(mpg~wt,data=))%>%#速记:~lm

lappy(函数(x)x[[1]][1])%>%#提取截取映射
函数有一些用于索引嵌套列表的速记编码。“帮助”页面中的一个有用的代码片段:

要深入索引到嵌套列表中,请使用多个值;c(“x”、“y”) 相当于z[[“x”][[“y”]]

因此,使用嵌套索引的代码以及
map\u 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很有用,因为它提供了更多我最终使用的速记编码示例。

使用了来自broom的tidy函数

库(purrr)
图书馆(dplyr)
#> 
#>正在附加包:“dplyr”
#>以下对象已从“package:stats”屏蔽:
#> 
#>滤波器,滞后
#>以下对象已从“package:base”屏蔽:
#> 
#>相交、setdiff、setequal、并集
图书馆(tidyr)
图书馆(扫帚)
气缸组%group\u by(气缸)%>%
nest()
循环lm%变异(
mod=map(数据,~lm(mpg~wt,数据=.x))
)%%>%mutate(coef=map(mod,~tidy(.x)))%%>%unest(coef)
共青团
#>#tibble:6 x 8
#>#组别:共青团[3]
#>气缸数据模块术语估计标准误差统计p值
#>                                       

#>1.6.2.6.3.4.4.5.8.6.8您是如何尝试
map
?如果删除函数名
lappy
并将其替换为
map
-完全相同的参数-效果很好。我发现
map
的帮助页面在这里很有用。与
lappy
相比,您似乎可以进行一些简单的编码。类似于
map\u dbl(c(1,1))
为嵌套列表编制索引。@Gregor。啊!这太明显了。谢谢你。这对我来说是最好的答案,因为它不会输出那些以名称作为属性的向量。干杯