У меня есть таблица, отображаемая в блестящем приложении. Я хочу отформатировать таблицы на основе значений и соответственно раскрасить их. Я видел раскраску в форматируемой области, где на основе диапазона значений он определяет разрывы, а затем генерируются цветовые градиенты, которые применяются к таблице. То, что я хочу сделать, это позволить пользователю заполнить минимальное и максимальное значение, и в зависимости от этого значения в таблице будут окрашены. Таким образом, если значения находятся в диапазоне от 1 до 20, а пользовательские значения 5 и 15, значения ниже 5 и выше 15 не должны иметь каких-либо цветовых градиентов. Ниже приведен код того, как я в настоящее время использую форматируемое форматирование области.
library(shiny)
library(shinyWidgets)
library(shinydashboard)
library(DT)
sidebar <- dashboardSidebar(
sidebarMenu(id = "tab",
menuItem("1", tabName = "1")
)
)
body <- ## Body content
dashboardBody(box(width = 12,fluidRow(
fluidRow( column(
width = 3, textInput("text1", label = h5("Min"), value = "Enter min")),
column(
width = 3, textInput("text2", label = h5("Max"), value = "Enter max"))),
DT::dataTableOutput("op")
)))
ui <- dashboardPage(dashboardHeader(title = "Scorecard"),
sidebar,
body)
# Define the server code
server <- function(input, output,session) {
df <- data.frame(month = c("mazda 3", "mazda cx5", "mazda 6","mazda miata","honda civic","honda accord"),
april = c(.1,.2,.3,.3,.4,.5),
may = c(.3,.4,.5,.2,.1,.5),
june = c(.2,.1,.5,.1,.2,.3))
brks <- reactive({ quantile(df$april, probs = seq(.05, .95, .05), na.rm = TRUE)})
clrs <- reactive({ round(seq(255, 175, length.out = length(brks()) + 1), 0) %>%
{paste0("rgb(",.,",", ., ",255 )")}})
df_format<- reactive ({datatable(df,options = list(searching = FALSE,pageLength = 15, lengthChange = FALSE))%>%
formatStyle(names(df),backgroundColor = styleInterval(brks(), clrs()))})
output$op <-renderDataTable({
df_format()
})
}
shinyApp(ui = ui, server = server)