使用expss在R Marksdown中格式化表格

时间:2019-09-26 07:58:50

标签: r markdown knitr expss

expss中使用R Markdown格式化某些表时遇到一些麻烦。输出为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.

我的桌子只有一栏宽,三页长。

我暂时使用panderkablekableExtra>修复了它

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)

并获得以下结果:

output table from the previous code

如您所见,R Markdown中的表在表的开头添加了一行,并且单词“ area”应该同时位于“ Rural”和“ Urban”两者之间。根据我对小插图的了解,在expss中使用R Markdown会产生我们可以在小插图中看到的表格。

expss table example from vignette

我可能会缺少的任何帮助吗?

非常感谢

Manolo

1 个答案:

答案 0 :(得分:0)

您能说,您正在编织哪种文件?就我而言,它可以处理HTML文档,如小插图中所述。但是对于Word或PDF / Latex文档,它不起作用,并且与问题中所示的效果相同。

但是,我也期待有可能在PDF或Word中具有相同的漂亮表格。