r-从broom::整洁中提取一个具有unnest的sinlge元素



我想从扫帚整理结果中获得一个元素到一个未测试的数据帧中。

表格结构为:

> zz
# A tibble: 1,923 x 5
sys_loc_code data                model         tidy             glance          
<chr>        <list>              <list>        <list>           <list>          
1 S000-001     <tibble [493 x 18]> <S3: survreg> <tibble [4 x 7]> <tibble [1 x 8]>
2 S000-002     <tibble [32 x 18]>  <S3: survreg> <tibble [4 x 7]> <tibble [1 x 8]>

当我应用扫帚:整洁功能时,我会得到输出:

> unnest(zz, tidy)
# A tibble: 7,692 x 8
id           term         estimate std.error statistic  p.value  conf.low  conf.high
<chr>        <chr>           <dbl>     <dbl>     <dbl>    <dbl>     <dbl>      <dbl>
1 S000-001     (Intercept)  4226.     881.         4.80  1.61e- 6  2499.      5952.   
2 S000-001     y              -2.08     0.438     -4.76  1.93e- 6    -2.94      -1.23 
3 S000-001     m               2.46     0.645      3.82  1.36e- 4     1.20       3.72 
4 S000-001     Log(scale)      3.47     0.0383    90.7   0.          NA         NA    
5 S000-002     (Intercept)  4610.    2880.         1.60  1.09e- 1 -1035.     10255.   
6 S000-002     y              -2.29     1.44      -1.60  1.11e- 1    -5.10       0.523
7 S000-002     m               1.69     1.33       1.27  2.05e- 1    -0.922      4.30 
8 S000-002     Log(scale)      2.62     0.132     19.9   5.57e-88    NA         NA    

但是,我只需要从这个输出中获取一个元素。在这个例子中,只有每个id(-2.08和-2.29(的y项的斜率,结果表看起来像:

> unnest(zz, tidy)
# A tibble: 7,692 x 2
id           estimate 
<chr>        <dbl>     
1 S000-001     -2.08     
2 S000-002     -2.29     

当x是sinlge类S3:"survreg"时,语法整洁(x([2,2]如预期那样工作,但当应用于同一类的列表的嵌套表时失败。

任何建议都将不胜感激。提前谢谢。

假设unnest的输出是一个半字节,您应该能够将其直接馈送到dplyr管道中以获取您想要的内容。类似这样的东西:

library(dplyr)
unnest(zz, tidy) %>%
filter(term == "y") %>%
select(id, estimate)

相关内容

最新更新