2016-01-28 5 views
2

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

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) 

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

ответ

5

Вы можете сделать это путем добавления 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)