Цветовой код ячейки в DT :: RenderDataTable в Shiny - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь сделать блестящее приложение, которое отображает таблицу данных (используя DT :: renderDataTable), которая отображает комментарии и их чувства.Когда в столбце настроений (sent_score) указано «Позитивное», я хочу, чтобы ячейка sent_score была выделена зеленым цветом.Когда написано «Negative», я хочу, чтобы эта ячейка была выделена красным.

Если возможно, мне также было бы интересно, если есть способ сделать всю строку зеленой или красной в зависимости от того, является ли sent_score положительным или отрицательныма также.

Ниже приведена упрощенная версия кода панели инструментов.Проблема, я думаю, заключается в выходной части кода $ comments.Спасибо за вашу помощь !!

 #Read in packages
 library(readxl)
 library(tools)
 library(dplyr)
 library(shiny)
 library(DT)


 #Read in Data

 fakeshinydata


#####Build the UI for the app####

ui <- fluidPage(
  sidebarLayout(
sidebarPanel(
  h4("Variables"),
  selectInput(inputId = "x",
              label = "Predictor:",
              choices = c("ID", "ave_sentiment", "location", "title", "job_sat", "motivation", "commitment", "review"),
              selected = "ID"),
  selectInput(inputId = "y",
              label = "Outcome:",
              choices = c("sale", "ave_sentiment", "location", "title", "job_sat", "motivation", "commitment", "review"),
              selected = "sale"),
mainPanel(
          DT::dataTableOutput(outputId = "comments")
)
)
 ))

#####

#####Connect to the server for the app####

 server <- function(input, output) {

 fake_subset_1 <- reactive({
fakeshinydata
  })

  output$comments <- DT::renderDataTable({
   fake_subset_1() %>%
      select(input$x, input$y, comment, sent_score, com_date)
    })
   }

 shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 07 декабря 2018

Вам необходимо создать переменную signscore, которая будет равна -1 или 1 в зависимости от sent_score <0 или> 0, а после:

DT::renderTable(
  DT::datatable( mydatatable)
  %>% formatStyle( 
             columns = c("signscore"), 
             valueColumns = c("signscore"), 
             target='row', 
             backgroundColor = 
               styleEqual(c(-1,1), 
               c('green','red')) 
      ) 
) 

https://rstudio.github.io/DT/010-style.html

...