对嵌套组应用`qwraps2`

c8ib6hqw  于 2023-04-03  发布在  其他
关注(0)|答案(2)|浏览(95)

使用qwraps2包,我们可以在HTML和Latex中创建漂亮的汇总表。
也支持分组的data.frames和一个组,但是嵌套的组呢?有没有一种方法可以直接将一个嵌套组的data.frame传递给qwraps2::summary_table()
或者,有没有办法cbind()两个输出?
请考虑以下几点:

R代码

library(dplyr)
library(qwraps2)

our_summary1 <-
    list("Miles Per Gallon" =
                 list("min" = ~ min(.data$mpg),
                      "max" = ~ max(.data$mpg),
                      "mean (sd)" = ~ qwraps2::mean_sd(.data$mpg)),
         "Displacement" =
                 list("min" = ~ min(.data$disp),
                      "median" = ~ median(.data$disp),
                      "max" = ~ max(.data$disp),
                      "mean (sd)" = ~ qwraps2::mean_sd(.data$disp)),
         "Weight (1000 lbs)" =
                 list("min" = ~ min(.data$wt),
                      "max" = ~ max(.data$wt),
                      "mean (sd)" = ~ qwraps2::mean_sd(.data$wt)),
         "Forward Gears" =
                 list("Three" = ~ qwraps2::n_perc0(.data$gear == 3),
                      "Four"  = ~ qwraps2::n_perc0(.data$gear == 4),
                      "Five"  = ~ qwraps2::n_perc0(.data$gear == 5))
    )

summary_table(mtcars %>% dplyr::group_by(vs), our_summary1)

然而,我想用vs * 和 * gear分组。因此,每个vs组将有三个gear子组(gear == 3,4或5)。
以下操作会导致错误:
x一个一个一个一个x一个一个二个x

ego6inou

ego6inou1#

您可以手动添加列或使用interaction(vs, gear)进行分组:

library(dplyr)

library(qwraps2)
options(qwraps2_markup = "markdown")

summary_table(mtcars %>% 
                dplyr::mutate(vsgear = paste0("vs = ", vs, ", gear = ", gear)) %>% 
                dplyr::group_by(vsgear), our_summary1)

summary_table(mtcars %>% dplyr::group_by(interaction(vs, gear, sep=",")), our_summary1)

###showing results for the second option only

#> 
#> |                       |interaction(vs, gear): 0,3 (N = 12) |interaction(vs, gear): 1,3 (N = 3) |interaction(vs, gear): 0,4 (N = 2) |interaction(vs, gear): 1,4 (N = 10) |interaction(vs, gear): 0,5 (N = 4) |interaction(vs, gear): 1,5 (N = 1) |
#> |:----------------------|:-----------------------------------|:----------------------------------|:----------------------------------|:-----------------------------------|:----------------------------------|:----------------------------------|
#> |**Miles Per Gallon**   |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |
#> |&nbsp;&nbsp; min       |10.4                                |18.1                               |21.0                               |17.8                                |15.0                               |30.4                               |
#> |&nbsp;&nbsp; max       |19.2                                |21.5                               |21.0                               |33.9                                |26.0                               |30.4                               |
#> |&nbsp;&nbsp; mean (sd) |15.05 &plusmn; 2.77                 |20.33 &plusmn; 1.93                |21.00 &plusmn; 0.00                |25.24 &plusmn; 5.54                 |19.12 &plusmn; 5.02                |30.40 &plusmn;  NA                 |
#> |**Displacement**       |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |
#> |&nbsp;&nbsp; min       |275.8                               |120.1                              |160.0                              |71.1                                |120.3                              |95.1                               |
#> |&nbsp;&nbsp; median    |355.0                               |225.0                              |160.0                              |114.5                               |223.0                              |95.1                               |
#> |&nbsp;&nbsp; max       |472.0                               |258.0                              |160.0                              |167.6                               |351.0                              |95.1                               |
#> |&nbsp;&nbsp; mean (sd) |357.62 &plusmn; 71.82               |201.03 &plusmn; 72.01              |160.00 &plusmn; 0.00               |115.62 &plusmn; 38.54               |229.32 &plusmn; 113.93             |95.10 &plusmn;  NA                 |
#> |**Weight (1000 lbs)**  |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |
#> |&nbsp;&nbsp; min       |3.435                               |2.465                              |2.620                              |1.615                               |2.140                              |1.513                              |
#> |&nbsp;&nbsp; max       |5.424                               |3.460                              |2.875                              |3.440                               |3.570                              |1.513                              |
#> |&nbsp;&nbsp; mean (sd) |4.10 &plusmn; 0.77                  |3.05 &plusmn; 0.52                 |2.75 &plusmn; 0.18                 |2.59 &plusmn; 0.69                  |2.91 &plusmn; 0.61                 |1.51 &plusmn;  NA                  |
#> |**Forward Gears**      |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |&nbsp;&nbsp;                        |&nbsp;&nbsp;                       |&nbsp;&nbsp;                       |
#> |&nbsp;&nbsp; Three     |12 (100)                            |3 (100)                            |0 (0)                              |0 (0)                               |0 (0)                              |0 (0)                              |
#> |&nbsp;&nbsp; Four      |0 (0)                               |0 (0)                              |2 (100)                            |10 (100)                            |0 (0)                              |0 (0)                              |
#> |&nbsp;&nbsp; Five      |0 (0)                               |0 (0)                              |0 (0)                              |0 (0)                               |4 (100)                            |1 (100)                            |
vyswwuz2

vyswwuz22#

从qwraps 2的0.5.0版本开始,summary_table方法已经被扩展为无需构建交互列即可处理此问题。

library(qwraps2)
options(qwraps2_markup = "markdown")

our_summary1 <-
    list("Miles Per Gallon" =
                 list("min" = ~ min(mpg),
                      "max" = ~ max(mpg),
                      "mean (sd)" = ~ qwraps2::mean_sd(mpg)),
         "Displacement" =
                 list("min" = ~ min(disp),
                      "median" = ~ median(disp),
                      "max" = ~ max(disp),
                      "mean (sd)" = ~ qwraps2::mean_sd(disp)),
         "Weight (1000 lbs)" =
                 list("min" = ~ min(wt),
                      "max" = ~ max(wt),
                      "mean (sd)" = ~ qwraps2::mean_sd(wt)),
         "Forward Gears" =
                 list("Three" = ~ qwraps2::n_perc0(gear == 3),
                      "Four"  = ~ qwraps2::n_perc0(gear == 4),
                      "Five"  = ~ qwraps2::n_perc0(gear == 5))
    )

st <- summary_table(mtcars, summaries = our_summary1, by = c("vs", "gear"))
st
#> 
#> 
#> |                       |0.3 (N = 12)          |1.3 (N = 3)           |0.4 (N = 2)          |1.4 (N = 10)          |0.5 (N = 4)            |1.5 (N = 1)        |
#> |:----------------------|:---------------------|:---------------------|:--------------------|:---------------------|:----------------------|:------------------|
#> |**Miles Per Gallon**   |&nbsp;&nbsp;          |&nbsp;&nbsp;          |&nbsp;&nbsp;         |&nbsp;&nbsp;          |&nbsp;&nbsp;           |&nbsp;&nbsp;       |
#> |&nbsp;&nbsp; min       |10.4                  |18.1                  |21                   |17.8                  |15                     |30.4               |
#> |&nbsp;&nbsp; max       |19.2                  |21.5                  |21                   |33.9                  |26                     |30.4               |
#> |&nbsp;&nbsp; mean (sd) |15.05 &plusmn; 2.77   |20.33 &plusmn; 1.93   |21.00 &plusmn; 0.00  |25.24 &plusmn; 5.54   |19.12 &plusmn; 5.02    |30.40 &plusmn;  NA |
#> |**Displacement**       |&nbsp;&nbsp;          |&nbsp;&nbsp;          |&nbsp;&nbsp;         |&nbsp;&nbsp;          |&nbsp;&nbsp;           |&nbsp;&nbsp;       |
#> |&nbsp;&nbsp; min       |275.8                 |120.1                 |160                  |71.1                  |120.3                  |95.1               |
#> |&nbsp;&nbsp; median    |355                   |225                   |160                  |114.5                 |223                    |95.1               |
#> |&nbsp;&nbsp; max       |472                   |258                   |160                  |167.6                 |351                    |95.1               |
#> |&nbsp;&nbsp; mean (sd) |357.62 &plusmn; 71.82 |201.03 &plusmn; 72.01 |160.00 &plusmn; 0.00 |115.62 &plusmn; 38.54 |229.32 &plusmn; 113.93 |95.10 &plusmn;  NA |
#> |**Weight (1000 lbs)**  |&nbsp;&nbsp;          |&nbsp;&nbsp;          |&nbsp;&nbsp;         |&nbsp;&nbsp;          |&nbsp;&nbsp;           |&nbsp;&nbsp;       |
#> |&nbsp;&nbsp; min       |3.435                 |2.465                 |2.62                 |1.615                 |2.14                   |1.513              |
#> |&nbsp;&nbsp; max       |5.424                 |3.46                  |2.875                |3.44                  |3.57                   |1.513              |
#> |&nbsp;&nbsp; mean (sd) |4.10 &plusmn; 0.77    |3.05 &plusmn; 0.52    |2.75 &plusmn; 0.18   |2.59 &plusmn; 0.69    |2.91 &plusmn; 0.61     |1.51 &plusmn;  NA  |
#> |**Forward Gears**      |&nbsp;&nbsp;          |&nbsp;&nbsp;          |&nbsp;&nbsp;         |&nbsp;&nbsp;          |&nbsp;&nbsp;           |&nbsp;&nbsp;       |
#> |&nbsp;&nbsp; Three     |12 (100)              |3 (100)               |0 (0)                |0 (0)                 |0 (0)                  |0 (0)              |
#> |&nbsp;&nbsp; Four      |0 (0)                 |0 (0)                 |2 (100)              |10 (100)              |0 (0)                  |0 (0)              |
#> |&nbsp;&nbsp; Five      |0 (0)                 |0 (0)                 |0 (0)                |0 (0)                 |4 (100)                |1 (100)            |

头文件0.3,1.3,...没有那么大的帮助。有几个选项可以获得更好的头文件。一个选项是获得人类可读的字符或因子版本的vs齿轮,或者修改summary_table的输出。

colnames(st) <-
  sub("^(\\d).", "VS = \\1, ", sub("\\.(\\d)", " Gear = \\1", colnames(st) ))

st
#> 
#> 
#> |                       |VS = 0, Gear = 3 (N = 12) |VS = 1, Gear = 3 (N = 3) |VS = 0, Gear = 4 (N = 2) |VS = 1, Gear = 4 (N = 10) |VS = 0, Gear = 5 (N = 4) |VS = 1, Gear = 5 (N = 1) |
#> |:----------------------|:-------------------------|:------------------------|:------------------------|:-------------------------|:------------------------|:------------------------|
#> |**Miles Per Gallon**   |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |
#> |&nbsp;&nbsp; min       |10.4                      |18.1                     |21                       |17.8                      |15                       |30.4                     |
#> |&nbsp;&nbsp; max       |19.2                      |21.5                     |21                       |33.9                      |26                       |30.4                     |
#> |&nbsp;&nbsp; mean (sd) |15.05 &plusmn; 2.77       |20.33 &plusmn; 1.93      |21.00 &plusmn; 0.00      |25.24 &plusmn; 5.54       |19.12 &plusmn; 5.02      |30.40 &plusmn;  NA       |
#> |**Displacement**       |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |
#> |&nbsp;&nbsp; min       |275.8                     |120.1                    |160                      |71.1                      |120.3                    |95.1                     |
#> |&nbsp;&nbsp; median    |355                       |225                      |160                      |114.5                     |223                      |95.1                     |
#> |&nbsp;&nbsp; max       |472                       |258                      |160                      |167.6                     |351                      |95.1                     |
#> |&nbsp;&nbsp; mean (sd) |357.62 &plusmn; 71.82     |201.03 &plusmn; 72.01    |160.00 &plusmn; 0.00     |115.62 &plusmn; 38.54     |229.32 &plusmn; 113.93   |95.10 &plusmn;  NA       |
#> |**Weight (1000 lbs)**  |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |
#> |&nbsp;&nbsp; min       |3.435                     |2.465                    |2.62                     |1.615                     |2.14                     |1.513                    |
#> |&nbsp;&nbsp; max       |5.424                     |3.46                     |2.875                    |3.44                      |3.57                     |1.513                    |
#> |&nbsp;&nbsp; mean (sd) |4.10 &plusmn; 0.77        |3.05 &plusmn; 0.52       |2.75 &plusmn; 0.18       |2.59 &plusmn; 0.69        |2.91 &plusmn; 0.61       |1.51 &plusmn;  NA        |
#> |**Forward Gears**      |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |&nbsp;&nbsp;              |&nbsp;&nbsp;             |&nbsp;&nbsp;             |
#> |&nbsp;&nbsp; Three     |12 (100)                  |3 (100)                  |0 (0)                    |0 (0)                     |0 (0)                    |0 (0)                    |
#> |&nbsp;&nbsp; Four      |0 (0)                     |0 (0)                    |2 (100)                  |10 (100)                  |0 (0)                    |0 (0)                    |
#> |&nbsp;&nbsp; Five      |0 (0)                     |0 (0)                    |0 (0)                    |0 (0)                     |4 (100)                  |1 (100)                  |

创建于2020-09-14由reprex package(v0.3.0)

devtools::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.2 (2020-06-22)
#>  os       macOS Catalina 10.15.6      
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_US.UTF-8                 
#>  ctype    en_US.UTF-8                 
#>  tz       America/Denver              
#>  date     2020-09-14                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.0.0)
#>  backports     1.1.9   2020-08-24 [1] CRAN (R 4.0.2)
#>  callr         3.4.4   2020-09-07 [1] CRAN (R 4.0.2)
#>  cli           2.0.2   2020-02-28 [1] CRAN (R 4.0.0)
#>  crayon        1.3.4   2017-09-16 [1] CRAN (R 4.0.0)
#>  desc          1.2.0   2018-05-01 [1] CRAN (R 4.0.0)
#>  devtools      2.3.1   2020-07-21 [1] CRAN (R 4.0.2)
#>  digest        0.6.25  2020-02-23 [1] CRAN (R 4.0.0)
#>  ellipsis      0.3.1   2020-05-15 [1] CRAN (R 4.0.0)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 4.0.0)
#>  fansi         0.4.1   2020-01-08 [1] CRAN (R 4.0.0)
#>  fs            1.5.0   2020-07-31 [1] CRAN (R 4.0.2)
#>  glue          1.4.2   2020-08-27 [1] CRAN (R 4.0.2)
#>  highr         0.8     2019-03-20 [1] CRAN (R 4.0.0)
#>  htmltools     0.5.0   2020-06-16 [1] CRAN (R 4.0.0)
#>  knitr         1.29    2020-06-23 [1] CRAN (R 4.0.0)
#>  magrittr      1.5     2014-11-22 [1] CRAN (R 4.0.0)
#>  memoise       1.1.0   2017-04-21 [1] CRAN (R 4.0.0)
#>  pkgbuild      1.1.0   2020-07-13 [1] CRAN (R 4.0.2)
#>  pkgload       1.1.0   2020-05-29 [1] CRAN (R 4.0.0)
#>  prettyunits   1.1.1   2020-01-24 [1] CRAN (R 4.0.0)
#>  processx      3.4.4   2020-09-03 [1] CRAN (R 4.0.2)
#>  ps            1.3.4   2020-08-11 [1] CRAN (R 4.0.2)
#>  qwraps2     * 0.5.0   2020-09-14 [1] local         
#>  R6            2.4.1   2019-11-12 [1] CRAN (R 4.0.0)
#>  Rcpp          1.0.5   2020-07-06 [1] CRAN (R 4.0.0)
#>  remotes       2.2.0   2020-07-21 [1] CRAN (R 4.0.2)
#>  rlang         0.4.7   2020-07-09 [1] CRAN (R 4.0.2)
#>  rmarkdown     2.3     2020-06-18 [1] CRAN (R 4.0.0)
#>  rprojroot     1.3-2   2018-01-03 [1] CRAN (R 4.0.0)
#>  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 4.0.0)
#>  stringi       1.5.3   2020-09-09 [1] CRAN (R 4.0.2)
#>  stringr       1.4.0   2019-02-10 [1] CRAN (R 4.0.0)
#>  testthat      2.3.2   2020-03-02 [1] CRAN (R 4.0.0)
#>  usethis       1.6.1   2020-04-29 [1] CRAN (R 4.0.0)
#>  withr         2.2.0   2020-04-20 [1] CRAN (R 4.0.0)
#>  xfun          0.17    2020-09-09 [1] CRAN (R 4.0.2)
#>  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.0.0)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library

相关问题