为什么summary_table函数在markdown中生成与HTML编织时不同的表

时间:2019-04-07 19:25:01

标签: r

这里是初学者的问题,如果这是一个明显的错误,对不起。我使用r中的summary_table函数生成了摘要统计信息表。当我在markdown中运行代码时,它会按预期生成表,但是当我尝试将rmd编织为html以在rpubs上发布时,它看起来如下:

## |Summary Statistics               |ESS (N = 73)                    |
## |:--------------------------------|:-------------------------------|
## |**Alcohol drunk at the weekend** |                      |
## |   variable            |interval                        |

以此类推...

(该表应类似于以下表:https://cran.r-project.org/web/packages/qwraps2/vignettes/summary-statistics.html

我知道我已经将qwraps2_markup编码为等于'markdown',但是我不确定如何创建相同的表。

```{r}

options(qwraps2_markup = 'markdown')
our_summary <-
  list("Alcohol drunk at the weekend" = 
         list("variable" =~ c("interval"),
              "min" = ~ min(ESS$alcwknd),
              "median" = ~ median(ESS$alcwknd),
              "max" = ~ max(ESS$alcwknd),
              "mean (sd)" = ~ qwraps2::mean_sd(ESS$cgtsday)),
       "Cigarettes smoked" =
         list("variable" =~ c("interval"),
              "min" = ~ min(ESS$cgtsday),
              "median" = ~ median(ESS$cgtsday),
              "max" = ~ max(ESS$cgtsday),
              "mean (sd)" = ~ qwraps2::mean_sd(ESS$cgtsday)),
       "Age" = 
         list("variable" =~ c("Interval"),
              "min" = ~ min(ESS$agea),
              "median" = ~ median(ESS$agea),
              "max" = ~ max(ESS$agea),
              "mean (sd)" = ~ qwraps2::mean_sd(ESS$agea)),
       "Time helping others" =
         list("variable" =~ c("Ratio"),
              "mode" =~ time_mode),
        "Felt Depressed" =
         list("variable" =~ c("Ordinal"),
              "mode" =~ dpr_mode),
       "Main Activity" =
         list("variable" =~ c("Categorical"),
              "mode" =~ act_mode))


tab <- summary_table(ESS, our_summary)
print(tab, rtitle = "Summary Statistics")
```

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如该问题下的注释所述,该问题的解决方案是为knitr设置正确的代码块选项。 knitr的默认设置是使用results = 'markup'报告代码块的结果,这将导致输出看起来像R控制台。 results = "asis"将“将R的原始结果写入输出文档”,这意味着将markdown放入.Rmd或将Latex放入.tex文件。

```{r, results = "asis"}

options(qwraps2_markup = 'markdown')
our_summary <-
  list("Alcohol drunk at the weekend" = 
         list("variable" =~ c("interval"),
              "min" = ~ min(ESS$alcwknd),
              "median" = ~ median(ESS$alcwknd),
              "max" = ~ max(ESS$alcwknd),
              "mean (sd)" = ~ qwraps2::mean_sd(ESS$cgtsday)),
       "Cigarettes smoked" =
         list("variable" =~ c("interval"),
              "min" = ~ min(ESS$cgtsday),
              "median" = ~ median(ESS$cgtsday),
              "max" = ~ max(ESS$cgtsday),
              "mean (sd)" = ~ qwraps2::mean_sd(ESS$cgtsday)),
       "Age" = 
         list("variable" =~ c("Interval"),
              "min" = ~ min(ESS$agea),
              "median" = ~ median(ESS$agea),
              "max" = ~ max(ESS$agea),
              "mean (sd)" = ~ qwraps2::mean_sd(ESS$agea)),
       "Time helping others" =
         list("variable" =~ c("Ratio"),
              "mode" =~ time_mode),
        "Felt Depressed" =
         list("variable" =~ c("Ordinal"),
              "mode" =~ dpr_mode),
       "Main Activity" =
         list("variable" =~ c("Categorical"),
              "mode" =~ act_mode))


tab <- summary_table(ESS, our_summary)
print(tab, rtitle = "Summary Statistics")
```