kable颜色行和柱单元格(不是单元格值)

发布于 2025-01-19 09:12:53 字数 1588 浏览 4 评论 0原文

给定:

library(kableExtra)
df <- iris[c(1:10), c(1:5)]
df
#    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1           5.1         3.5          1.4         0.2  setosa
# 2           4.9         3.0          1.4         0.2  setosa
# 3           4.7         3.2          1.3         0.2  setosa
# 4           4.6         3.1          1.5         0.2  setosa
# 5           5.0         3.6          1.4         0.2  setosa
# 6           5.4         3.9          1.7         0.4  setosa
# 7           4.6         3.4          1.4         0.3  setosa
# 8           5.0         3.4          1.5         0.2  setosa
# 9           4.4         2.9          1.4         0.2  setosa
# 10          4.9         3.1          1.5         0.1  setosa

我想使用kable为某些列为每一行着色。

所需输出:

“在此处输入图像描述”

一种手动​​方法可能是以下方法,然后尝试将它们合并在一起:

kable(df) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)

kable(df[, c(2:3)]) %>%
  row_spec(seq(1, nrow(df), 2), background = "red") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) 

kable(df[, c(4:5)]) %>%
  row_spec(seq(1, nrow(df), 2), background = "blue") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)

但是,我想要一种自动化的方式来一次呼叫。有没有办法将row_spec用于按位置进行特定列的方法?

谢谢

Given:

library(kableExtra)
df <- iris[c(1:10), c(1:5)]
df
#    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1           5.1         3.5          1.4         0.2  setosa
# 2           4.9         3.0          1.4         0.2  setosa
# 3           4.7         3.2          1.3         0.2  setosa
# 4           4.6         3.1          1.5         0.2  setosa
# 5           5.0         3.6          1.4         0.2  setosa
# 6           5.4         3.9          1.7         0.4  setosa
# 7           4.6         3.4          1.4         0.3  setosa
# 8           5.0         3.4          1.5         0.2  setosa
# 9           4.4         2.9          1.4         0.2  setosa
# 10          4.9         3.1          1.5         0.1  setosa

I want to use kable to colour every second row for certain columns.

Desired output:

enter image description here

A manual way to do this might be the following and then try and merge them together:

kable(df) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)

kable(df[, c(2:3)]) %>%
  row_spec(seq(1, nrow(df), 2), background = "red") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE) 

kable(df[, c(4:5)]) %>%
  row_spec(seq(1, nrow(df), 2), background = "blue") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)

However, I want an automated way of doing it in one call. Is there a way to combine row_spec for specific columns by position?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文