Я опробовал пакет qwraps2, который выглядит довольно многообещающим.
Однако, когда я написал такую таблицу:
set.seed(42)
library(magrittr)
library(qwraps2)
library(dplyr)
# define the markup language we are working in.
# options(qwraps2_markup = "latex") is also supported.
options(qwraps2_markup = "markdown")
data(mtcars)
mtcars2 <-
dplyr::mutate(mtcars,
cyl_factor = factor(cyl,
levels = c(6, 4, 8),
labels = paste(c(6, 4, 8), "cylinders")),
cyl_character = paste(cyl, "cylinders"))
str(mtcars2)
with(mtcars2, table(cyl_factor, cyl_character))
with(mtcars2, all.equal(factor(cyl_character), cyl_factor))
mean_sd(mtcars2$mpg)
args(summary_table)
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))
)
whole <- summary_table(mtcars2 %>% dplyr::group_by(., cyl), our_summary1)
whole
На моем сервере, который не позволяет выводить пример, с group_by происходит странная вещь, которую я не могу понять:
Когда я использую функцию group_by, как указано выше, она делает group_by в заголовках столбцов (таким образом, как и в приведенном выше примере, я получаю число maching cyl = 4,6 и 8 (n = 11,7 и 14) в качестве отдельных столбцов. (group_by из dplyr)
Однако все статистические данные в строках ниже одинаковы в каждом столбце и представляют собой общее количество всех (таким образом, не сгруппированных). Это действительно странно и не выдает ошибку, у кого-нибудь есть предложения о том, как действовать?
Извините, но я не могу привести воспроизводимый пример.