首页 > 解决方案 > (R, dplyr) 将summarise_all数据放入自己的数据框

问题描述

不幸的是,我没有足够的分数来发表评论,但我对这篇文章中的帮助有一个挥之不去的问题:(R,dplyr)选择多个列以相同的字符串开头并按组汇总平均值(90%CI)

这是该帖子的工作代码:

dat %>%
    group_by(case) %>%
    select(starts_with('ab')) %>%
    summarise_all(funs('mean' = mean, 'ub' = quantile(., .95), 'lb' = quantile(., .05)))

# # A tibble: 3 x 7
#    case abc_mean abe_mean abc_ub abe_ub abc_lb abe_lb
#   <chr>    <dbl>    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
# 1 case1      1.5      2.0   1.95   2.90   1.05   1.10
# 2 case2      2.0      2.5   2.90   2.95   1.10   2.05
# 3 case3      2.0      4.0   2.00   4.00   2.00   4.00

我可以将此输出定向到它自己的数据框中吗?我有两个问题,首先,它没有打印我的所有数据,而是打印:

    # A tibble: 2 x 13
  STATION TMPMX1_mean TMPMX2_mean TMPMX3_mean TMPMX4_mean TMPMX5_mean TMPMX6_mean TMPMX7_mean
  <chr>         <dbl>       <dbl>       <dbl>       <dbl>       <dbl>       <dbl>       <dbl>
1 300220        -1.45       -0.13        5.45        12.8        19.3        24.0        26.2
2 303025        -1.77       -0.53        4.92        12.0        18.6        23.2        25.5
# ... with 5 more variables: TMPMX8_mean <dbl>, TMPMX9_mean <dbl>, TMPMX10_mean <dbl>,
#   TMPMX11_mean <dbl>, TMPMX12_mean <dbl>

当我尝试将此数据放入数据框时,使用前面的示例,它看起来像这样:

df<-dat %>%
group_by(case) %>%
select(starts_with('ab')) %>%
summarise_all(funs('mean' = mean))

但是我收到一个“group_by”错误,说“添加缺少的分组变量:'case'”

所以我的问题是(1)如何让 summarise_all 显示所有数据以及(2)如何将这些数据直接路由到数据框中。

谢谢!

标签: rgroup-bydplyr

解决方案


推荐阅读