У меня есть data.frame с одним столбцом ID и несколькими числовыми столбцами, количество числовых столбцов может отличаться. Из этих числовых столбцов я хочу покрасить все значения выше среднего значения столбца, а все значения ниже столбца означают красный. Код ниже дает мой желаемый результат, но это не общий код для фреймов данных с более или менее числовыми столбцами.formatStyle через несколько столбцов DT R
library(DT)
data2 <- cbind(ID = "some ID",iris[,1:4])
datatable(
data2, rownames = FALSE, class = 'cell-border stripe',
options = list(
dom = 't', pageLength = -1, lengthMenu = list(c(-1), c('All'))
)
) %>%
formatStyle(colnames(data)[2], backgroundColor = styleInterval(mean(data[,2]), c("red","green"))) %>%
formatStyle(colnames(data)[3], backgroundColor = styleInterval(mean(data[,3]), c("red","green"))) %>%
formatStyle(colnames(data)[4], backgroundColor = styleInterval(mean(data[,4]), c("red","green"))) %>%
formatStyle(colnames(data)[5], backgroundColor = styleInterval(mean(data[,5]), c("red","green")))
Я бы хотел заменить приведенный выше код ниже, но это не сработает. Код ниже также будет работать, когда число числовых столбцов изменится.
datatable(
data2, rownames = FALSE, class = 'cell-border stripe',
options = list(
dom = 't', pageLength = -1, lengthMenu = list(c(-1), c('All'))
)
) %>%
formatStyle(colnames(data2)[2:ncol(data2)], backgroundColor = styleInterval(colMeans(data2[,2:ncol(data2)]), c("red","green")))
Возможно ли это? Так что да, как?
Идея иметь коврик rix с числами и матрицей с соответствующими цветами, не работает, если у вас одинаковое значение в разных столбцах, когда оно находится в одном столбце красного цвета, а в другом зеленом. Затем он даст цвет первого столбца – Berecht
Ах .. да, вы правы ... подумать об этом – Batanichek
Вы можете дрожать или рандомизировать его после определения цветов. Только вам нужно быть уверенным, что созданное случайное число уникально. – Berecht