Я пытаюсь использовать formattable для построчного окрашивания ячеек на основе значения в другом столбце с помощью функций a и b. Я начал с тестирования своих функций с использованием formattable и указания по столбцам, и он работает нормально (изображение A)
Затем я переключился на использование вызова области, и функции делают что-то напуганное и не возвращают правильные цвета (В). Любая идея, что это проходит как тест $ среднее?
Спасибо за тонну! Извините, что изображения не могут быть вставлены, это мой первый вопрос переполнения стека!
library(formattable)
library(data.table)
#sample data
test = data.table(a=c(10, 10, 8),
b=c(9, 11, 12),
c=c(9.2, 10, 6))
test$average = rowMeans(test)
##test functions
func_a = function(x,y) {
min = y-(0.05*y)
max = y+(0.05*y)
test = x > min & x < max
test
}
func_b = function(x,y) {
min = y-(0.10*y)
max = y+(0.10*y)
test = x > min & x < max
test
}
#sample format
sample_format = formatter("span", style = x~style(display = "block",
font.weight = "bold",
color = "white",
"border-radius" = "4px",
"padding-right" = "4px",
"background-color" =
ifelse(func_a(x, test$average), 'green',
ifelse(func_b(x, test$average), "#FFDB58", 'red'))))
#Correct implementation column wise, except this isn't what I ultimately want
formattable(test, align = c('l', rep('c', ncol(dt))),
list(a = sample_format,
b = sample_format,
c = sample_format))
#Incorrect - why isn't this matching the first row above?
formattable(test, align = c('l', rep('c', ncol(dt))),
area(row=1, col=1:3) ~ sample_format))
(A) Правильная реализация функций по строкам (B) Неправильные цвета - почему строка 1 не соответствует изображению выше?