我正在用R Markdown中的kableExtra包将表格编织成PDF,我想知道是否有人有解决方案来确保列标题(黑色)、列组标题(黑色)和填充行(红色)的背景 colored颜色 填充整个单元格.如下图所示,各个单元格只填充了部分内容,这看起来有点傻.

enter image description here

Example code:

---
title: "Test Doc"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(
  echo = FALSE,
  message = FALSE,
  warning = FALSE,
  dev = "cairo_pdf"
  )
```

```{r}
library(tidyverse)
library(kableExtra)
```

```{r}
set.seed(1)

df <- data.frame(
  id = LETTERS[1:10],
  var1 = rnorm(10, 50, 10),
  var2 = rnorm(10, 50, 10),
  var3 = rnorm(10, 50, 10),
  var4 = rnorm(10, 50, 10),
  var5 = rnorm(10, 50, 10),
  var6 = rnorm(10, 50, 10),
  grp = rep(paste("Group", 1:2), each = 5)
)
```

```{r}
kbl(df[1:7],
    booktabs = TRUE,
    escape = FALSE,
    align = c("l", rep("c", ncol(df) - 1))) %>%
  kable_styling(latex_options = c("HOLD_position"),
                font_size = 8) %>%
  add_header_above(c(" " = 1, "colgroup1" = 3, "colgroup2" = 3), background = "black",
                     color = "white", bold = TRUE) %>%
  row_spec(row = 0, background = "black", color = "white", bold = TRUE) %>%
  pack_rows(index = table(fct_inorder(df$grp)), background = "#ED1B2F",
            color = "white", bold = TRUE, extra_latex_after = "\\midrule{}")
```

推荐答案

此方法删除行之间的空格以删除空格.

Try:
a) removing the booktabs argument, which forces extra line spaces every 5 rows.
b) add linesep = "" so there is no line separation, and then
c) in the call to pack_rows remove the space after the grouping row extra_latex_after = "".

```{r}

kbl(df[1:7],
    # booktabs = TRUE,
    escape = FALSE,
    align = c("l", rep("c", ncol(df) - 1)),
    linesep = "")  |> 
  kable_styling(latex_options = c("HOLD_position"),
                font_size = 8)  |> 
  add_header_above(c(" " = 1, "colgroup1" = 3, "colgroup2" = 3), 
                   background = "black",
                   color = "white", 
                   bold = TRUE)  |> 
  row_spec(row = 0, 
           background = "black", 
           color = "white", 
           bold = TRUE) |> 
  pack_rows(index = table(fct_inorder(df$grp)), background = "#ED1B2F",
            color = "white", 
            bold = TRUE,
            extra_latex_after = "")
```

结果是:

enter image description here

R相关问答推荐

收件箱摘要表布局在第一列上显示子类别

在处理因素时,Base R grep家族比stringr变体快得多

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

使用对管道内单元格的引用生成新变量

对lme 4对象运行summary()时出错(diag中的错误(from,names = RST):对象unpackedMatrix_diag_get找不到)

r替换lme S4对象的字符串的一部分

在某些栏和某些条件下,替换dfs列表中的NA

如何在格子中添加双曲曲线

使用across,starts_with和ifelse语句变更多个变量

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

如何在观测缺失的地方添加零

如何在分组条形图中移动相关列?

我正在努力用R计算数据集中的中值逐步距离

如何删除仅在数据集顶部和底部包含零的行

将选定的索引范围与阈值进行比较

在使用具有Bray-Curtis相似性的pvCluust时计算p值

如何对r中包含特定(未知)文本的行求和?

向R中的数据帧添加一列,该列统计另一列中每个唯一值的二进制观测值的数量

注释不会绘制在所有ggplot2面上

使用同一行中的前一个值填充R矩阵中的缺失值