Таблица R Уценка qwraps2 и knitr :: kable. Колонка отсутствует - PullRequest
0 голосов
/ 08 января 2020

У меня есть следующий фиктивный элемент data.frame

set.seed(12345)
df<-data.frame(var1=floor(runif(10,1000000,5000000)),  group=rep(c("A","B"),5), event=rep(c("Yes","No"),5))

И я хотел бы создать его сводную таблицу. Я попытался использовать qwraps2

следующим образом:

summary<-list("VAlue1" =
          list("min" = ~ min(.data$var1),
              "max" = ~ max(.data$var1),
              "mean (sd)" = ~ qwraps2::mean_sd(.data$var1)),

       "Group" =
         list("Yes" = ~ qwraps2::n_perc0(.data$group == "A"),
              "No"  = ~ qwraps2::n_perc0(.data$group == "B")))
knitr::kable(
  qwraps2::summary_table(dplyr::group_by(df, event),summary )
)

К сожалению, в выводе отсутствует переменная для просмотра:

|          |event: No (N = 5)                |event: Yes (N = 5)                 |
|:---------|:--------------------------------|:----------------------------------|
|min       |2591303                          |1315253                            |
|max       |4232714                          |4711820                            |
|mean (sd) |3,456,579.40 &plusmn; 672,665.35 |3,029,844.00 &plusmn; 1,572,709.32 |
|Yes       |0 (0)                            |5 (100)                            |
|No        |5 (100)                          |0 (0)                              |

Как включить категории "Value1" и "Group"?

Спасибо!

также приветствуются предложения для других пакетов.

1 Ответ

0 голосов
/ 02 марта 2020

Объект, возвращаемый summary_table, представляет собой символьную матрицу с дополнительным классом S3 qwraps2_summary_table. Имена групп строк Value1 и Group явно не являются частью матрицы символов, они являются атрибутами части. Метод print для объекта qwraps2_summary_table создает таблицу по мере необходимости для соответствующего языка разметки, LaTeX или markdown.

Два изменения в примере, опубликованном для получения таблицы, которую вы ищете:

  1. Добавьте options(qwraps2_markup = "markdown") к вашему сценарию. Язык разметки по умолчанию - LaTeX, установка этой опции изменяет значение по умолчанию на уценку.

  2. Не переносить summary_table внутри knitr::kable: это предотвращает вызов необходимого метода печати .

options(qwraps2_markup = "markdown")

set.seed(12345)
df <- data.frame(var1  = floor(runif(10,1000000,5000000)),
                 group = rep(c("A","B"),5),
                 event = rep(c("Yes","No"),5))


summary <- list("VAlue1" =
                list("min" = ~ min(.data$var1),
                     "max" = ~ max(.data$var1),
                     "mean (sd)" = ~ qwraps2::mean_sd(.data$var1)), 
                "Group" =
                  list("Yes" = ~ qwraps2::n_perc0(.data$group == "A"),
                       "No"  = ~ qwraps2::n_perc0(.data$group == "B")))


tab <- qwraps2::summary_table(dplyr::group_by(df, event), summary)
str(tab)
#>  'qwraps2_summary_table' chr [1:5, 1:2] "1665487" "4958947" ...
#>  - attr(*, "dimnames")=List of 2
#>   ..$ : chr [1:5] "min" "max" "mean (sd)" "Yes" ...
#>   ..$ : chr [1:2] "event: No (N = 5)" "event: Yes (N = 5)"
#>  - attr(*, "rgroups")= Named int [1:2] 3 2
#>   ..- attr(*, "names")= chr [1:2] "VAlue1" "Group"

tab
#> 
#> 
#> |                       |event: No (N = 5)                  |event: Yes (N = 5)               |
#> |:----------------------|:----------------------------------|:--------------------------------|
#> |**VAlue1**             |&nbsp;&nbsp;                       |&nbsp;&nbsp;                     |
#> |&nbsp;&nbsp; min       |1665487                            |2300381                          |
#> |&nbsp;&nbsp; max       |4958947                            |4043929                          |
#> |&nbsp;&nbsp; mean (sd) |3,741,784.20 &plusmn; 1,370,520.00 |3,392,933.80 &plusmn; 782,295.15 |
#> |**Group**              |&nbsp;&nbsp;                       |&nbsp;&nbsp;                     |
#> |&nbsp;&nbsp; Yes       |0 (0)                              |5 (100)                          |
#> |&nbsp;&nbsp; No        |5 (100)                            |0 (0)                            |

Создано в 2020-03-02 пакетом представительство (v0.3.0)

...