首页 > 解决方案 > 在 R 中使用 kable() 时不显示整个数据框

问题描述

我正在尝试使用kable函数显示数据框。数据框由 29 列组成,但仅显示 9 列,其余列重复。

使用的数据框是

structure(list(Name = c("Grand Total", "B", "C", "D", "E", "F"
), GrandTotal = c(3416, 297, 410, 326, 125, 29), English = c(1096, 
18, 64, 0, 55, 0), Science = c(211, 5, 39, 0, 55, 0), Language = c(149, 
5, 0, 0, 10, 0), Maths = c(22, 0, 0, 0, 0, 0), Social = c(0, 
0, 0, 0, 0, 0), English = c(211, 5, 39, 0, 55, 0), Science = c(149, 
5, 0, 0, 10, 0), Maths = c(0, 0, 0, 0, 0, 0), Social = c(22, 
0, 0, 0, 0, 0), English = c(1096, 18, 64, 0, 55, 0), Science = c(211, 
5, 39, 0, 55, 0), Language = c(149, 5, 0, 0, 10, 0), Maths = c(22, 
0, 0, 0, 0, 0), Social = c(0, 0, 0, 0, 0, 0), English = c(211, 
5, 39, 0, 55, 0), Science = c(149, 5, 0, 0, 10, 0), ACIntern = c(0, 
0, 0, 0, 0, 0), PAM = c(22, 0, 0, 0, 0, 0), Maths = c(1096, 18, 
64, 0, 55, 0), Social = c(211, 5, 39, 0, 55, 0), English = c(149, 
5, 0, 0, 10, 0), Science = c(22, 0, 0, 0, 0, 0), Language = c(0, 
0, 0, 0, 0, 0), Maths = c(211, 5, 39, 0, 55, 0), Social = c(149, 
5, 0, 0, 10, 0), English = c(0, 0, 0, 0, 0, 0), Science = c(22, 
0, 0, 0, 0, 0)), row.names = c(NA, 6L), class = "data.frame")

用于将数据框显示为表格格式的代码如下

monthSelected <- c("April","May","June")

month1 <- paste0(monthSelected[1],' ',yearSelected)
month2 <- paste0(monthSelected[2],' ',yearSelected)
month3 <- paste0(monthSelected[3],' ',yearSelected)

myHeader <- c(" " = 2, month1 = 9, month2 = 9, month3 = 9)    
names(myHeader) <- c(" ", month1, month2, month3)
kable(df[1:ncol(df)],"html") %>%
  kable_styling(c("striped", "bordered")) %>%
  add_header_above(c(" "=2, "IND" = 5, "US" = 4,"IND" = 5, "US" = 4,"IND" = 5, "US" = 4)) %>%
  add_header_above(header = myHeader) 

显示的输出如下

在此处输入图像描述

我不知道我哪里出错了。谁能帮我解决这个问题?除此之外,当表格水平滚动时,是否可以冻结前两列?

提前致谢!!

标签: rkable

解决方案


推荐阅读