请看下面的故事:

df <- data.frame(
  C1 = 1:2, 
  C2 = c("a", "a"), 
  C3 = 3:4, 
  C4 = 5:6, 
  C5 = c("b", "b"), 
  row.names = c("Row 1", "Row 2")
  )

df %>% 
  kable() %>%
  add_header_above(c("", "Group 1" = 2, "", "Group 2" = 2), 
                   extra_css = "border-bottom: 2px solid green;") %>%
  kable_styling(full_width = FALSE) %>%
  collapse_rows(columns = c(3, 6)) %>% 
  row_spec(0, extra_css = "border-bottom: 2px solid;") %>%
  row_spec(1, extra_css = "border-bottom: 1px solid red;") %>%
  row_spec(2, extra_css = "border-bottom: 2px solid blue;")

它看起来是这样的:

enter image description here

我有两个问题:

  • 我想完全删除第1排和第2排之间的线.
  • 我想要第二排下面的整条线.

我添加了红色和蓝色,只是为了显示正在发生的事情.

在使用collapse_rows()之后,row_spec()将列C2和C5的底部视为属于行1.

因此,当我编辑row_spec(1, ...)(见红色)时,我最终编辑的是不同行中的行. 与row_spec(2, ...)一样(见蓝色),我不能编辑具有折叠行的列的行.

我试着用column_spec(),但也不太好用.例如,

column_spec(3, extra_css = "border-bottom: 2px solid brown;")

向列C2和C3添加一行,

column_spec(4, extra_css = "border-bottom: 2px solid brown;")

将行添加到不同的行,并

column_spec(5, extra_css = "border-bottom: 2px solid brown;")

给出一个错误,而不是在C5下添加一行.

我本以为会是这样的:

enter image description here

我试图用border-bottom: none;go 掉红线部分,但这条线仍然可见.

如有任何帮助,请提前表示感谢.

推荐答案

这应该会奏效.使用一些试错法,您可以使用额外的行和列规范来控制行.似乎只有在拨打collapse rows之前才能拨打column_specs.

PS我不得不使用kableExtra:devtools::install_github("haozhu233/kableExtra")的开发版本,因为collapse_rows:https://github.com/haozhu233/kableExtra/issues/706似乎有问题

library(kableExtra)

  df |> 
  kable(fomat = "latex") |>
  add_header_above(c("", "Group 1" = 2, "", "Group 2" = 2), 
                   extra_css = "border-bottom: 2px solid green;") |>
  kable_styling(full_width = FALSE) |>
  column_spec(3, extra_css = "border-bottom: 2px solid;") |> 
  column_spec(6, extra_css = "border-bottom: 2px solid;") |> 
  collapse_rows(columns = c(3, 6)) |> 
  row_spec(0, extra_css = "border-bottom: 2px solid;") |> 
  row_spec(2, extra_css = "border-top: 1px solid white;") |>
  row_spec(2, extra_css = "border-bottom: 2px solid;") 


enter image description here

R相关问答推荐

在交互式情节中从barplot中获取值时遇到问题,在shinly中的ggplotly

基于两个现有列创建新列

R:随机抽取所有可能排列的样本

从R中的函数中提取变量以及它们来自哪些环境?

使用gsim删除特殊词

按条件计算观察次数

使用case_when和Mutate搜索多个列以寻找条件

self_函数无法工作--无法子集结束后的列

如何使用geom_sf在边界显示两种 colored颜色 ?

我不能在docker中加载sf

多个模拟序列间的一种预测回归关系

有没有办法使用ggText,<;Sub>;&;<;sup>;将上标和下标添加到同一元素?

Geom_Hline将不会出现,而它以前出现了

是否有新方法来更改Facet_WRAP(Ggplot2)中条文本的文本 colored颜色 ?

将项粘贴到向量中,并将它们分组为x的倍数,用空格分隔

根据约束随机填充向量的元素

为什么这个表格格罗布不打印?

将列表中的字符串粘贴到R中for循环内的dplyr筛选器中

用满足特定列匹配的另一行替换NA行

在生成打印的自定义函数中,可以通过变量将线型或 colored颜色 设置为NULL吗?