Я пытаюсь добавить цвета для условного форматирования в таблицу HTML, которая содержит несколько пользовательских классов S3. Как я могу сохранить методы форматирования, которые я использую для своих классов S3, и при этом изменить внешний вид ячеек в таблице?
Например:
library(dplyr)
library(kableExtra)
df <- data.frame(a = c(-1.2345, 0, 1.2345), b = c(-1.2345, 0, 1.2345))
format.myclass <- function(x, ...) {
paste(round(x, 2), "♥")
}
class(df$a) <- c("myclass", class(df$a))
class(df$b) <- c("myclass", class(df$b))
В этом фрейме данных все числа отображаются правильно для этого класса:
> df
a b
1 -1.23 ♥ -1.23 ♥
2 0 ♥ 0 ♥
3 1.23 ♥ 1.23 ♥
Но это больше не работает, когда я добавляю свойства стиля kableExtra в ячейку:
df %>% mutate(a = cell_spec(a, color = ifelse(a<0, "red", "green"))) %>%
kable(., escape = F) %>%
kable_styling()
Есть ли способ сохранить myclass
форматирование при использовании cell_spec()
?
Обновление: Вызов метода форматирования класса явно делает эту работу:
df %>% mutate(a = cell_spec(format.myclass(a), color = ifelse(a<0, "red", "green"))) %>%
kable(., escape = F) %>%
kable_styling()
Но есть ли способ автоматически вызвать этот форматер для своего класса?