首页 > 解决方案 > 更改 Shiny tableOutput 中的字体颜色

问题描述

使用 tableOutput 更改单行数据框字体颜色的最简单方法是什么?具体来说,如何将“右”下的“7”改为绿色。

library(shiny)

shinyApp(
  ui = fluidPage(

    sidebarLayout(
      sidebarPanel(
      fluidRow(  
         tableOutput("view")
        )
      ),

      mainPanel(
      ))),

  server = function(input, output, session){

    correct <- reactiveValues(num = 7)
    wrong <- reactiveValues(num = 4)   
    skipped <- reactiveValues(num = 9)

    togo = 80

    output$view <- renderTable(tibble(
      Right = correct$num,
      Wrong = wrong$num,
      Skipped = skipped$num,
      ToGo = togo
    ), spacing = "xs")
  }
)

标签: rshiny

解决方案


最好DT在这种情况下使用renderDataTable更好的格式。

library(shiny)
library(tidyverse)
library(DT)

shinyApp(
  ui = fluidPage(

    sidebarLayout(
      sidebarPanel(
        fluidRow(  
          column(8,dataTableOutput("view"))
        )
      ),

      mainPanel(
      ))),

  server = function(input, output, session){

    correct <- reactiveValues(num = 7)
    wrong <- reactiveValues(num = 4)   
    skipped <- reactiveValues(num = 9)

    togo = 80

    output$view <- renderDataTable(datatable(tibble(
      Right = correct$num,
      Wrong = wrong$num,
      Skipped = skipped$num,
      ToGo = togo
    )) %>% formatStyle("Right",color=styleEqual(7, "red")) ) 
  }
)

仅显示表格:

library(shiny)
library(tidyverse)
library(DT)

shinyApp(
  ui = fluidPage(

    sidebarLayout(
      sidebarPanel(
        fluidRow(  
          column(8,dataTableOutput("view"))
        )
      ),

      mainPanel(
      ))),

  server = function(input, output, session){

    correct <- reactiveValues(num = 7)
    wrong <- reactiveValues(num = 4)   
    skipped <- reactiveValues(num = 9)

    togo = 80

    output$view <- renderDataTable(datatable(tibble(
      Right = correct$num,
      Wrong = wrong$num,
      Skipped = skipped$num,
      ToGo = togo
    ), options = list(dom = 't')) %>% formatStyle("Right",color=styleEqual(7, "red")) ) 
  }
)

推荐阅读