在kableExtra()中控制行高

时间:2017-12-05 13:33:38

标签: r latex r-markdown kableextra kable

您好我用kableExtra创建了这个很棒的表,但我唯一的问题是行的高度并不总是相等。有人知道这方面的补救措施吗?

我的桌子:

enter image description here

例如,如您所见,项目编号22(第6行)的行高度(间距)比其他行更大。

我的代码:

my_column_names = c("Item number", "Item", 
                "Emotion", "Social", 
                "At Home", "Body", "Emotion", 
                "Social 1", "Social 2", 
                "At Home", "Body") 

kable(df1,
      format = "latex", booktabs = TRUE,
      col.names = my_column_names,
      caption = "Factor loadings for the 4 and 5 Factor Model") %>%
      kable_styling(latex_options = c("striped", "hold_position"),
                    full_width = FALSE) %>% 
      add_header_above(c(" " = 2, 
                 "4 Factor Model " = 4, "5 Factor model" = 5)) %>%
      add_header_above(c(" " = 2, 
                 "Model" = 9)) %>%
      kableExtra::landscape()

2 个答案:

答案 0 :(得分:9)

行高不总是相等的原因是默认情况下\addlinespace每隔5行插入linesep = ""。要摆脱它,请将kable()放入7 more sections。有关详细信息,请参阅Get rid of \addlinespace in kable

答案 1 :(得分:1)

通常,您可以通过HTML在HTML表格中进行更改。不确定如何使用kableExtra执行此操作,但您可能需要考虑tableHTML来执行此操作。我在下面添加一个小例子来演示行高:

library(tableHTML)
tableHTML(mtcars[1:10, ], 
          border = 1,
          rownames = TRUE, 
          caption = 'This is a caption',
          footer = 'This is a footer',
          widths = c(140, rep(50, 11)),
          second_headers = list(c(2, 5, 6), c('', 'col2', 'col3')),
          theme = 'scientific') %>%
  add_css_row(list('height', '50px'), rows = 3:12)

enter image description here

如果你不想,你不需要使用科学主题。该软件包使您可以灵活地添加任何您喜欢的CSS(如条纹行等)。如果感兴趣,您可以查看教程here

P.S。它目前只支持一个额外的标题。除此之外,您的整个表格都可以复制。