在 kableExtra() 中控制行高

Controlling row height in kableExtra()

您好,我用 kableExtra 制作了这个很棒的 table,但我唯一的问题是行的高度并不总是相等。有人知道解决这个问题的方法吗?

我的table:

例如,如您所见,项目编号 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()

通常,您可以通过 CSS 在 HTML table 中更改。不确定如何使用 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)

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

P.S。目前只支持一个额外的header。除此之外,您的整个 table 都可以被复制。

行高不总是相等的原因是默认情况下 kable 每 5 行插入一个 \addlinespace。要删除它,请将 linesep = "" 放入 kable()。有关详细信息,请参阅