换行列标题文本,column_spec 不适用于 kable_styling

Wrap Column title text, column_spec not working for kable_styling

我有一个正在打印的 table。我在 column_spec 函数中指定了列宽,但是我的列标题没有换行以适合指定的宽度。

代码如下所示;

 kable(ranknew, format = "latex",  row.names = FALSE, 
     align = c("c", "l", "r", "r", "r"), 
     caption = paste("We had", nrow(ranknew) , 
     "brokerages give us 100+ new policies in", year(Sys.Date())-1), 
     longtable = TRUE, booktabs = TRUE) %>%  
 kable_styling(latex_options = c("HOLD_position", "repeat_header"), full_width = F, font_size = 9, position = "center")  %>% 
 column_spec(column = 1, width = "3cm")%>% 
 column_spec(column = 2, width = "8cm") %>% 
 column_spec(column = 3, width = "2cm") %>% 
 column_spec(column = 4, width = "1.5cm") %>% 
 column_spec(column = 5, width = "1.5cm") %>% 
 row_spec(row = 0, bold = TRUE, underline = TRUE, background = "orange", 
          color = "black", italic = FALSE, monospace = FALSE, strikeout = FALSE) %>% 
 print(floating = FALSEFALSE, row.names = FALSE)

这是我的代码生成的结果:

显然我希望列标题换行。 column_specrow_spec 的顺序没有区别。

在开头的 kable() 函数中添加 col.names() 并从 row_spec() 函数中删除下划线=TRUE。

kable(ranknew, format = "latex",  row.names = FALSE, 
   col.names = c("Provinces","Brokerage Name","Written Pren....","Loss Ratio","New Business( Whatever comes here)"),
     align = c("c", "l", "r", "r", "r"), 
     caption = paste("We had", nrow(ranknew) , 
     "brokerages give us 100+ new policies in", year(Sys.Date())-1), 
     longtable = TRUE, booktabs = TRUE) %>%  
 kable_styling(latex_options = c("HOLD_position", "repeat_header"), full_width = F, font_size = 9, position = "center")  %>% 
 column_spec(column = 1, width = "3cm")%>% 
 column_spec(column = 2, width = "8cm") %>% 
 column_spec(column = 3, width = "2cm") %>% 
 column_spec(column = 4, width = "1.5cm") %>% 
 column_spec(column = 5, width = "1.5cm") %>% 
 row_spec(row = 0, bold = TRUE,  background = "orange", 
          color = "black", italic = FALSE, monospace = FALSE, strikeout = FALSE) %>% 
 print(floating = FALSEFALSE, row.names = FALSE)

这个例子适用于我的 iris 数据集。

library(knitr)
library(kableExtra)
library(tidyverse)

 kable(iris, format = "latex",  row.names = FALSE, 
       col.names = c("Provinces","Brokerage Name","Written Pren....","Loss Ratio","New Business( Whatever comes here)"),
     longtable = TRUE, booktabs = TRUE) %>%  
 kable_styling(latex_options = c("HOLD_position", "repeat_header"), full_width = F, font_size = 9, position = "center")  %>% 
 column_spec(column = 1, width = "3cm")%>% 
 column_spec(column = 2, width = "8cm") %>% 
 column_spec(column = 3, width = "2cm") %>% 
 column_spec(column = 4, width = "1.5cm") %>% 
 column_spec(column = 5, width = "1.5cm") %>% 
 row_spec(row = 0, bold = TRUE, underline = TRUE, background = "orange", 
          color = "black", italic = FALSE, monospace = FALSE, strikeout = FALSE) %>% 
 print(floating = FALSEFALSE, row.names = FALSE)