1 year ago

#382339

test-img

user63230

kable colour row and column cells by position (not cell values)

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

r

kable

kableextra

0 Answers

Your Answer

Accepted video resources