如何使用 CSS 在 kableExtra 中将 cell_spec() 中的文本居中?

How to center text from cell_spec() in kableExtra using CSS?

提问人:Ben_89 提问时间:10/21/2023 更新时间:10/21/2023 访问量:44

问:

我得到了一个解决方法,使用包中的参数,使我能够填充表格的整个单元格,而不仅仅是文本。但是,尽管在调用中进行了设置,但输出仍会导致列中的文本不居中。extra_css =cell_spec()kableExtraalign = c("l", "c")kbl()val

我真的希望让文本中心与 R Markdown 报告对齐,所以如果有人可以为此提出解决方法,也许使用 CSS,那就太好了!谢谢。

library(kableExtra)

set.seed(123)

name <- paste("Name", LETTERS)
val <- rnorm(26, 100, 50)
d <- data.frame(name, val)

d$val <- cell_spec(d$val,
                   background = dplyr::case_when(
                     d$val > mean(d$val) + sd(d$val) ~ "#DBEBF6",
                     d$val < mean(d$val) - sd(d$val) ~ "#FEE7DA",
                     .default = "transparent"
                   ),
                   extra_css = "margin: -8px; padding: 8px; display: flex;",
                   background_as_tile = FALSE
)

kbl(d, escape = FALSE, align = c("l", "c")) %>%
  kable_styling()

enter image description here

CSS R kableExtra

评论


答:

1赞 RKeithL 10/21/2023 #1
library(kableExtra)

set.seed(123)

name <- paste("Name", LETTERS)
val <- rnorm(26, 100, 50)
d <- data.frame(name, val)

d$val <- cell_spec(d$val,
                   background = dplyr::case_when(
                     d$val > mean(d$val) + sd(d$val) ~ "#DBEBF6",
                     d$val < mean(d$val) - sd(d$val) ~ "#FEE7DA",
                     .default = "white"
                   ),
                   extra_css = "margin: -8px; padding: 8px; display: flex;",
                   background_as_tile = FALSE
)

kbl(d, escape = FALSE, align = c("l", "c")) %>%
  kable_styling(full_width = F)

对于 HTML 输出,您可以通过在 中关闭来实现此目的。full_widthkable_styling()

这里有一些有用的东西:https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html

评论

0赞 Ben_89 10/21/2023
谢谢,@RKeithL。的列标题以我的代码居中,但不是该列中的行/值。我希望这些以我的代码不产生的居中。val
0赞 RKeithL 10/21/2023
老实说,@Ben_89试图提供帮助,但我发布的图像似乎确实显示了居中标题和列的居中值。我应该补充一点,我发布的图片是从 R markdown 到 PDF。val
0赞 Ben_89 10/21/2023
我很感激,@RKeithL!也许我的代码没有居中的原因是我正在尝试编织到 HTML 文档。这可能是我遇到问题的可行原因吗?
1赞 RKeithL 10/21/2023
更新了答案。干杯!
0赞 RKeithL 10/23/2023
只是签到,@Ben_89——调整full_width对你有用吗?