Я пытаюсь создать таблицу с цветными плитками, которые окрашены условно на основе среднего значения каждого столбца. В основном, плитка будет красной, если значение ниже среднего, и зеленой, если выше среднего. Я использовал простой оператор if else в своей функции ниже.
Я в конечном итоге буду использовать пакет «formattable» и функцию color_tile внутри пакета.
Я попытался написать свою собственную функцию для выбора цветов, но она только успешно помечает первую строку в моем фрейме данных.
#library(formattable) # not used in this example
green <- "#71CA97"
red <- "#ff7f7f"
col1 <- c(1.2, 4.2, 5.6, 7.1)
col2 <- c(5.0, 1.3, 10.3, 6.0)
col3 <- c(4.7, 6.3, 1.5, 6.3)
mydata <- data.frame(col1, col2, col3)
colorPicker <- function(x) {
if(x <= 5) {return("red")}
else {return("green")}
}
tile.colors <- lapply(c(mydata), colorPicker)
Предупреждающее сообщение:
В случае если (х <= 5) {:
условие имеет длину> 1, и будет использоваться только первый элемент
"tile.colors" возвращает правильные цвета, но только для первого ряда.
Я бы в конечном итоге вызвал "tile.colors" в функции форматирования, но сейчас я просто пытаюсь получить правильную функцию выбора цвета.
Есть ли более эффективный способ выполнить эту задачу?