在Shiny dataTableOutput中控制表格宽度

时间:2015-08-21 21:27:13

标签: r shiny

我无法使用函数dataTableOutput()控制我添加到闪亮应用程序的数据表的宽度。我试图在函数中使用width参数,但它在输出中没有任何变化,并且没有错误〜它没有告诉我它忽略了width参数。

library(shiny)
library(shinythemes)

ui <- fluidPage(theme = shinytheme("Spacelab"),
            fluidRow(
              column(6,dataTableOutput(outputId = "table")),
              column(6,p(textOutput("para")))
  )
)

server <- function(input, output){

  df <- as.data.frame(matrix(0, ncol = 15, nrow = 20))

  output$table <- renderDataTable({df})

  output$para <- renderText({
    text <- rep(x = "Hello World",1000)
  })
}
shinyApp(ui = ui,server = server)

2 个答案:

答案 0 :(得分:22)

dataTableOutput没有参数宽度。您可以在column范围内使用fluidRow参数宽度,提供1到12之间的整数。

library(shinythemes)
ui <- fluidPage(theme = shinytheme("Spacelab"),
    fluidRow(
        column(
            dataTableOutput(outputId = "table"), width = 6)
    )
)

server <- function(input, output){
    df <- as.data.frame(matrix(0, ncol = 20, nrow = 5))
    output$table <- renderDataTable({df}, 
        options = list(scrollX = TRUE))
}
shinyApp(ui = ui,server = server)

JavaScript库DataTable中的选项可以通过renderDataTable参数选项直接传递。例如,将scrollX设置为true允许表滚动。

答案 1 :(得分:7)

如果您使用“DT”R包以及相应的DT::dataTableOutputDT::renderDataTable,您可以对这些调用使用“宽度”选项,这显然可以是%(例如宽度) =“100%”)或像素(宽度= 300),它可以让你获得你想要的控制。

请参阅: https://rstudio.github.io/DT/shiny.html

从该页面注意:

  

重要提示:在调用dataTableOutput时,请务必使用DT ::前缀   和renderDataTable,以便这些函数的DT版本   保证被调用,而不是被弃用的Shiny版本。如果   你确保库(光泽)之后的库(DT),通常是DT   如果你不使用,版本应该覆盖闪亮的版本   DT ::前缀(如果有疑问,请使用此前缀,直到我们完全   从闪亮中删除这些功能