I am having some troubles in formatting some tables using expss in an R Markdown. The output is a pdf file. knitr options are:
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
Following the vignette on expss (available here https://cran.r-project.org/web/packages/expss/vignettes/tables-with-labels.html), I have written the following code:
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")
This code works just fine in R Studio, and produces this table:
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 |
Similarly, it works in R Studio with the following code:
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.")
However, when I put the code into my R Markdown, I get the following result:
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.
My table is just one column wide and three pages long.
I temporarily fixed it using pander, kable and 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)
and get this result:

As you can see, the table from R Markdown has added a row at the beginning of the table, and the word "area" is supposed to be on top of both "Rural" and Urban". This is based on my understanding from the vignette is that using expss in a R Markdown would produce the table that we can see in the vignette.

Any help on what I might be missing?
Many thanks in advance
Manolo