如何格式化一个闪亮的renderTable?

时间:2015-11-30 23:28:18

标签: r formatting shiny

我在Shiny中使用renderTable来显示数据集,我想为表格做一些格式化。例如,如果我的代码如下所示:

ui.R:

shinyUI(fluidPage(
  titlePanel("Hello Shiny!"),
  fluidRow(  
    column(4,
     ... ...
      )       
    ),
    column(8,
      tableOutput("mydata")
    )
  )
))

server.R:

shinyServer(function(input, output) {
df <- data.frame(A=1:10, B=11:20)
output$mydata <- renderTable(df)
})

此示例仅显示一个非常基本的表。如果我想将表格宽度设置为列宽的100%,而列A占据表格宽度的70%并且向左对齐,则列B占据表格宽度的30%并且向右对齐,并且列名的背景颜色设置为蓝色,如何使用renderTable实现此目的?非常感谢你的帮助。

顺便说一句,是否有关于renderTable格式设置的文件我可以参考?

1 个答案:

答案 0 :(得分:5)

我不明白你的意思&#34;将表格宽度设置为列宽的100%&#34;但你可以通过DT包实现你所需要的。 https://rstudio.github.io/DT/和renderDataTable

例如(不进行对齐):

library(shiny)
library (DT)
df = data.frame(A=1:10, B=11:20)

shinyApp(
  ui = fluidPage(DT::dataTableOutput('tbl')),
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      df, options = list(
        lengthChange = FALSE,
        initComplete = JS(
          "function(settings, json) {",
          "$(this.api().table().header()).css({'background-color': '#42f', 'color': '#fff'});",
          "}"),
        autowidth = TRUE,
        columnDefs = list(list(width = '70%', targets = 1))
        )
    )
  }
)