Добавить цвет текста к определенному имени столбца (заголовку) в таблице данных DT Shiny

Я новичок в DT в Shiny и хотел бы добавить цвет текста к определенным столбцам в таблице, я могу сделать это, используя formatStyle, как показано в приведенном ниже примере кода. Однако я также хотел бы добавить тот же цвет текста к соответствующему имени столбца (заголовку), есть ли простой способ сделать это?

library(shiny)
library(DT)

ui = fluidPage(DT::dataTableOutput('fDataTable'))

server = function(input, output) {
  output$fDataTable = DT::renderDataTable({
    DT::datatable(iris) %>%
      formatStyle(columns = 1, color = "red") %>%
      formatStyle(columns = 3, color = "blue")
  })
}  

app = list(ui = ui, server = server)
runApp(app)

Любая помощь будет принята с благодарностью.


person lmsimp    schedule 28.01.2016    source источник


Ответы (1)


Вы можете сделать это, добавив CSS в colnames таблицы, которую вы визуализируете (вам также необходимо установить escape в FALSE, иначе html будет экранирован).

Вот пример:

library(shiny)
library(DT)

ui = fluidPage(DT::dataTableOutput('fDataTable'))

server = function(input, output) {
  output$fDataTable = DT::renderDataTable({
    iris_coloured <- iris
    colnames(iris_coloured)[c(1,3)] <- paste0('<span style="color:',c("red","blue"),'">',colnames(iris)[c(1,3)],'</span>')
    DT::datatable(iris_coloured,escape=F) %>%
      formatStyle(columns = 1, color = "red") %>%
      formatStyle(columns = 3, color = "blue")
  })
}  

app = list(ui = ui, server = server)
runApp(app)
person NicE    schedule 28.01.2016