使用 expss 在 R Marksdown 中格式化表格
Posted
技术标签:
【中文标题】使用 expss 在 R Marksdown 中格式化表格【英文标题】:Formatting tables in R Marksdown using expss 【发布时间】:2020-01-26 10:56:50 【问题描述】:在R Markdown
中使用expss
格式化某些表格时遇到了一些麻烦。输出是一个pdf文件。 knitr
选项是:
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
按照expss
上的小插曲(可在此处获得https://cran.r-project.org/web/packages/expss/vignettes/tables-with-labels.html),我编写了以下代码:
sl_expss_long %>% # the tibble
calc_cro_cpct(
cell_vars = list(br, cl, cm, fgm, vd), # rows
col_vars = list(total(), area) # columns
) %>%
set_caption("Table 1")
这段代码在R Studio
中工作得很好,并生成了这个表:
Table 1
| | | #Total | Area | |
| | | | Rural | Urban |
| ------------------------------------ | ------------ | ------- | ------ | ------ |
| Birth registration | FALSE | 64.4 | 61.6 | 70.9 |
| | TRUE | 35.6 | 38.4 | 29.1 |
| | #Total cases | 8207.0 | 5732.0 | 2475.0 |
| Child labour | FALSE | 50.5 | 47.0 | 64.2 |
| | TRUE | 49.5 | 53.0 | 35.8 |
| | #Total cases | 5136.0 | 4085.0 | 1051.0 |
| Child marriage | FALSE | 98.8 | 98.6 | 99.2 |
| | TRUE | 1.2 | 1.4 | 0.8 |
| | #Total cases | 12158.0 | 7827.0 | 4331.0 |
| Female genitale mutilation / cutting | FALSE | 8.2 | 7.6 | 9.3 |
| | TRUE | 91.8 | 92.4 | 90.7 |
| | #Total cases | 9203.0 | 6144.0 | 3059.0 |
| Violent child discipline | FALSE | 9.9 | 10.4 | 8.9 |
| | TRUE | 90.1 | 89.6 | 91.1 |
| | #Total cases | 11547.0 | 7818.0 | 3729.0 |
同样,它可以在R Studio
中使用,代码如下:
sl_expss_long %>%
tab_cells(br, cl, cm, fgm, vd) %>%
tab_cols(total(), area) %>%
tab_stat_cpct() %>%
tab_pivot() %>%
set_caption("Table with summary statistics and significance marks.")
但是,当我将代码放入我的R Markdown
时,我得到以下结果:
Table with summary statistics
National
Area
Rural
Urban
Birth registration
FALSE
64.4
61.6
70.9
TRUE
35.6
38.4
29.1
#Total cases
8207
etc.
我的表格只有一列宽和三页长。
我使用pander
、kable
和kableExtra
临时修复了它>
sl_expss_long %>%
tab_cells(br, cl, cm, fgm, vd) %>%
tab_cols(total(label = " National| |"), area) %>%
tab_stat_cpct() %>%
tab_pivot() %>%
set_caption("Table with summary statistics") %>%
split_table_to_df() %>%
kable(caption = "Table with summary statistics") %>%
kable_styling(bootstrap_options = c("striped"),
latex_options = "hold_position") %>%
row_spec(1:2, bold = TRUE)
并得到这个结果:
如您所见,R Markdown
的表格在表格的开头添加了一行,并且“区域”一词应该位于“农村”和“城市”之上。这是基于我对小插图的理解是,在 R Markdown
中使用 expss
会生成我们可以在小插图中看到的表格。
对我可能遗漏的内容有什么帮助吗?
在此先感谢
马诺洛
【问题讨论】:
更新,如果我单独运行当前块,表格显示正确。因此,我认为针织选项有问题? 【参考方案1】:你能说一下,你在编织什么样的文件?就我而言,它适用于 HTML 文档,正如小插图中所说的那样。但是对于 Word 或 PDF /Latex 文档,它不起作用,并且与问题中显示的相同。
不过,我也期待有可能在 PDF 或 Word 中拥有同样漂亮的表格。
【讨论】:
以上是关于使用 expss 在 R Marksdown 中格式化表格的主要内容,如果未能解决你的问题,请参考以下文章