Вот пример, который игнорирует первую и последнюю строки и цвета в соответствии со значением, как вы говорите, но игнорирует буквы.
Сначала я загружаю библиотеки.
# Load libraries
library(knitr)
library(kableExtra)
ДалееЯ создаю фиктивный фрейм данных.
# Create data frame
df <- data.frame( region1 = c(sample(c(-5:5, letters[1:5]), 10, replace = TRUE)),
region2 = c(sample(c(-5:5, letters[1:5]), 10, replace = TRUE)),
region3 = c(sample(c(-5:5, letters[1:5]), 10, replace = TRUE)),
region4 = c(sample(c(-5:5, letters[1:5]), 10, replace = TRUE)), stringsAsFactors = FALSE )
Здесь я определяю функцию для форматирования ячеек.Я игнорирую первую и последнюю строки и проверяю, является ли символ буквой или цифрой, а затем цвет соответственно.
foo <- function(x, n, nmax){
cell_spec(x, background = ifelse(is.na(as.numeric(x)), "white",
ifelse(n == nmax | n == 1, "white",
ifelse(x > 1, "red",
ifelse(x < 1, "green", "yellow")))))
}
Наконец, я применяю функцию.
df %>%
mutate_all(funs(foo(., n = row_number(), nmax = n()))) %>%
kable(escape = FALSE) %>%
kable_styling()