Je ne parviens pas à contrôler la largeur d'une table de données que j'ai ajoutée à une application brillante à l'aide de la fonction dataTableOutput()
. J'ai essayé d'utiliser le paramètre width
dans la fonction mais cela ne change rien dans la sortie et il n'y a pas d'erreur ~ ça ne me dit pas qu'il ignore le paramètre 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)
dataTableOutput
n'a pas de largeur d'argument. Vous pouvez utiliser column
dans un fluidRow
avec une largeur d'argument, fournissant un entier compris entre 1 et 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)
Les options de la bibliothèque JavaScript DataTable peuvent être transmises directement via les options d'argument renderDataTable
. Par exemple, définir scrollX sur true permet aux tables de défiler.
Si vous utilisez le package "DT" R et le DT::dataTableOutput
et DT::renderDataTable
, vous pouvez utiliser une option "largeur" avec ces appels, qui peut apparemment être un% (par exemple largeur = "100%") ou des pixels (largeur = 300) qui devraient vous donner le contrôle que vous voulez.
Voir: https://rstudio.github.io/DT/shiny.html
Remarque à partir de cette page:
Important: veillez à utiliser le préfixe DT :: lorsque vous appelez dataTableOutput et renderDataTable afin que les versions DT de ces fonctions soient garanties d'être appelées, au lieu des versions Shiny obsolètes. Si vous vous assurez de la bibliothèque (DT) après la bibliothèque (brillant), normalement les versions DT devraient juste remplacer les versions brillantes si vous n'utilisez pas le préfixe DT :: (en cas de doute, utilisez ce préfixe, jusqu'à ce que nous supprimions complètement ces fonctions de brillant)