4

私は Shiny で DT を使用するのが初めてで、テーブルの特定の列にテキストの色を追加したいと考えています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)

どんな助けでも大歓迎です。

4

1 に答える 1

9

colnamesレンダリングするテーブルの にCSS を追加することで、これを行うことができます (また、設定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)
于 2016-01-28T12:59:20.783 に答える