r - 有没有办法为pdf制作没有线条/边框的kable?

标签 r r-markdown kable kableextra

我正在开发一个 Shiny 的应用程序,该应用程序可以生成并发送包含经过处理的数据的 pdf 报告。问题是我无法让表格布局看起来像客户想要的那样。

客户希望表格除了最后一行之外没有线条/边框,这在 kable 和/或 kableExtra 中可能吗?请不要包含其他包的答案,因为我知道 xtable 的答案。

table.tbl <- tibble(var1 = c("entry 1", "entry 2", "entry 3", "entry 4"),
                var2 = c(2000, 1000, 3000, 200),
                var3 = c(3000, 2000, 4000, 100))

table.tbl %>% 
  kable("latex", 
        booktabs = T) %>% 
  row_spec((table.tbl %>% 
             nrow()-1), hline_after = T)

最佳答案

我想 kable是为了 super 简单,因此在设计上缺乏这样的功能。也就是说,我想出了一个非常痛苦的解决方案。要点是我将边框颜色设置为白色(我假设您的页面是白色),然后在需要时将线条颜色切换为非白色(在我的示例中为红色),然后再回到白色。

最初,将以下内容添加到您的 YAML header 中:

header-includes:
  - \usepackage{colortbl}

接下来,在您的文档中添加:
\arrayrulecolor{white}

要呈现表格,请使用:
library(tidyverse)
library(knitr)
library(kableExtra)

table.tbl <- tibble(var1 = c("entry 1", "entry 2", "entry 3", "entry 4"),
                var2 = c(2000, 1000, 3000, 200),
                var3 = c(3000, 2000, 4000, 100))
table.tbl %>% 
  kable(format = "latex") %>%
  row_spec((table.tbl %>% 
             nrow()-1), extra_latex_after = "\\arrayrulecolor{red}") %>% 
  row_spec((table.tbl %>% 
             nrow()), extra_latex_after = "\\arrayrulecolor{white}")

给予,

enter image description here

关于r - 有没有办法为pdf制作没有线条/边框的kable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53868409/

相关文章:

r - 使用 R,如何使用已知的均值、中位数、百分位数来估计分布?

r - 为什么在 R Notebook 中设置工作目录不会更改控制台中的工作目录?

vertical-alignment - 使用 R markdown 生成的投影仪演示中的垂直对齐

r - kableExtra - 条纹颜色

r - RSelenium 和 ChromeDriver 的问题 - "This version of ChromeDriver only supports Chrome version X"

r - 通过分隔符 '+' 与 R 拆分列

r - 如何在列标题中使用希腊字母在 rmarkdown 中创建表格?

r - 使 html 表格列更宽/防止单词在 RMarkdown 中换行

r - 如何在 tidygraph 中标记中心节点

R knitr::kable:避免一列文字换行