r语言 - qwraps2 group_by 仅部分应用于表



我已经尝试了看起来很有前途的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(因此,如上例所示,我将数字加工 cyl = 4,6 和 8(n = 11,7 和 14)作为单独的列。(group_by来自德普利尔)

但是,下面行的所有统计信息在每列中都是相同的,并且是所有统计信息的总和(因此未分组)。这真的很奇怪,它不会抛出错误,有人对如何进行有任何建议吗?

很抱歉,我无法提供可重现的示例。

我弄清楚我做错了什么。

list("Miles Per Gallon" =
         list("min" = ~ min(.data$mpg),
              "max" = ~ max(.data$mpg),
              "mean (sd)" = ~ qwraps2::mean_sd(.data$mpg))

我没有写"min" = ~ min(.data$cyl == 4),而是写"min" = ~ min(data$cyl == 4)因此每次都引用整个数据。当我解决这个问题时它有效: "min" = ~ min(cyl == 4)

最新更新