Я хочу сделать сравнение строк с styleColorBar. В этом примере я хочу сравнивать Sepal.Length и Sepal.Width построчно.
app.R
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(DT::dataTableOutput("table")),
server = function(input, output) {
iris2 <- iris[c(1:10),c(1,2)]
observe({
output$table <- DT::renderDataTable({
dat <- datatable(iris2,
options = list(
paging = FALSE
)) %>%
formatStyle('Sepal.Length',background = styleColorBar(iris2$Sepal.Length, '#66cdaa'),backgroundSize = '98% 88%',backgroundRepeat = 'no-repeat', backgroundPosition = 'center') %>%
formatStyle('Sepal.Width',background = styleColorBar(iris2$Sepal.Width, '#66cdaa'),backgroundSize = '98% 88%',backgroundRepeat = 'no-repeat', backgroundPosition = 'center')
return(dat)
})
})
})
Однако, поскольку styleColorBar - это сравнение для каждого столбца, максимальный значение и минимальное значение отличаются слева и справа, а длина полосы не совпадает
app.R
library(shiny)
library(DT)
shinyApp(
ui = fluidPage(DT::dataTableOutput("table")),
server = function(input, output) {
iris2 <- iris[c(1:10),c(1,2)]
observe({
max <- max(iris2[,1:2], na.rm = TRUE)
max <- c(max,max)
min <- min(iris2[,1:2], na.rm = TRUE)
min <- c(min,min)
iris2 <- rbind(iris2,max,min)
output$table <- DT::renderDataTable({
dat <- datatable(iris2,
options = list(
paging = FALSE
)) %>%
formatStyle('Sepal.Length',background = styleColorBar(iris2$Sepal.Length, '#66cdaa'),backgroundSize = '98% 88%',backgroundRepeat = 'no-repeat', backgroundPosition = 'center') %>%
formatStyle('Sepal.Width',background = styleColorBar(iris2$Sepal.Width, '#66cdaa'),backgroundSize = '98% 88%',backgroundRepeat = 'no-repeat', backgroundPosition = 'center')
return(dat)
})
})
})
Итак, я добавил запись о максимальном и минимальном значении Sepal.Length и Sepal.Width для каждого столбца и сделали длину бара равной. Сравнение влево-вправо в баре прошло хорошо, но не очень круто. Есть ли способ скрыть последние две строки от пользователя? Или я могу выровнять левый и правый столбцы без добавления двух строк?