编织器中具有复杂结构的LaTex表(旋转多行文本,删除列分隔符)

时间:2019-06-07 10:45:56

标签: r latex knitr kableextra

我需要在RStudio中为具有以下结构的pdf输出创建一个乳胶表:

enter image description here

此表是使用以下代码为html输出创建的:

mat <- data.frame(a = c("column header","column header"),
                  rowx=c("row1","row2"),b = c("a","b"),
                  c = c("x","y"))
kable(mat, align = "c",col.names = c("","","v1","v2")) %>%
kable_styling(bootstrap_options = "striped", full_width = F, 
              position = "left",font_size = 12) %>%
column_spec(1, bold = T,width="2em",extra_css="transform: rotate(-90deg);") %>%
collapse_rows(columns = 1, valign = "middle") %>%
add_header_above(c(" " = 2, "row header" = 2))

我需要使用LaTeX表创建类似的结构。

他是我走了多远:

mat <- data.frame(a = c("column header","column header"),
                  rowx=c("row1","row2"),b = c("a","b"),c = c("x","y"))
kable(mat, align = "c",col.names = c("","","v1","v2")) %>%
kable_styling(bootstrap_options = "striped", full_width = F, position = "left",font_size = 12) %>%
collapse_rows(columns = 1, latex_hline = "none") %>%
add_header_above(c(" " = 2, "rows" = 2))

enter image description here

所以我仍然至少还需要2件事:

  • 在第一列中旋转标签
  • 删除第二行中最乱码的最左列分隔符。

这可以通过kableExtra命令和参数来实现吗?

1 个答案:

答案 0 :(得分:0)

以下是huxtable(我的包裹)的照片:

as_hux(mat, add_colnames = TRUE) %>% 
      insert_row(c("", "", "rows", "")) %>% 
      merge_cells(3:4, 1) %>%  
      merge_cells(1, 3:4) %>% 
      merge_cells(1:2, 1:2) %>% 
      set_rotation(3, 1, 90) %>% 
      set_bottom_border(0.4) %>%  
      set_bold(1:2, everywhere, TRUE) %>% 
      set_wrap(3, 1, TRUE) %>% 
      set_bottom_padding(4, -1, 48) %>% 
      set_bottom_padding(3, -1, 30) %>% 
      set_row_height(c("1em", "1em", "1.5em", "1.5em")) %>% 
      quick_pdf()

我必须承认,这需要很多调整。 TeX表很难理解。...

enter image description here