Таблица K таблицы R: диагональные ячейки, выделенные жирным шрифтом

Допустим, у меня есть таблица данных:

lttrs <- c('a', 'b', 'c')
a <- c(5, 9, 2)
b <- c(3, 3, 8)
c <- c(14, 2, 0)

df <- as.data.table(cbind(lttrs, a, b, c))

view(df)

       lttrs a b  c
1:     a 5 3 14
2:     b 9 3  2
3:     c 2 8  0

Теперь я хотел бы сделать таблицу с kable следующим образом:

tableDf <- df[]%>%
  select(everything())%>%
  kable("html", escape = F) %>% 
  kable_styling(bootstrap_options = "striped", full_width = F, position = "left")

Дает мне следующее изображение введите описание изображения здесь

Я бы хотел, чтобы диагональные значения были выделены жирным шрифтом в (5, 3, 0). Я предполагаю, что мне нужно работать с cell_spec и создать условие, при котором df $ lttrs == colnames (df), однако мне не удалось это исправить. У кого-нибудь есть решение?

Всего 1 ответ


Мы можем использовать cell_spec из library(kableExtra)

for (i in df[, seq_len(.N)]) {
  df[i, i+1L] <- cell_spec(df[i, i+1L, with=F], "html", bold=T)
}

kable(df, "html", escape = F) %>% 
  kable_styling(bootstrap_options = "striped", full_width = F) 

введите описание изображения здесь

Если вы действительно хотите, чтобы вещи выделялись, вы также можете изменить цвета и шрифты и т. Д. Например,

for (i in df[, seq_len(.N)]) {
  df[i, i+1L] <- cell_spec(df[i, i+1L, with=F], "html", bold=T, background = "red", color = "white")
}

введите описание изображения здесь


Есть идеи?

10000