У меня есть датафрейм (mtcars). В нем есть столбцы с именами: mpg cyl disp hp drat wt qsec vs
Я хочу сравнить каждый столбец с vs (столбец 1 против столбца 8, столбец 2 против столбца 8 и т. Д.) И покрасить каждый столбец с 1: 7 как красный (если элемент меньше, чем один в столбце 8), желтый (если равно) или зеленое (если больше).
Я использовал пакет KableExtra и использовал следующий код:
library(dplyr)
library(kableExtra)
mtcars %>%
mutate(
car = row.names(.),
mpg = cell_spec(mpg, "html", background = ifelse(mpg > vs, "green", "red")),
cyl = cell_spec(cyl, "html", background = ifelse(cyl > vs,"green", "red" )),
) %>%
kable(format = "html", escape = F) %>%
kable_styling("striped", full_width = F)
Я мог бы как-то достичь, но у меня есть две главные проблемы:
KableExtra не создает фон ячейки в виде плитки / заливки в Html, он просто выделяет текст в ячейке. Я вижу, что латекс может производить клеточный фон, но я не могу использовать латекс, нужно только html решение.
В моем фактическом фрейме данных есть 70 динамических столбцов, поэтому необходимо обращаться к столбцам без имен.
Пробовал также с condformat и tableHTML ... но не смог добиться динамического сравнения столбцов.