2015-06-10 36 views
9

Utilizzando R lucido & pacchetto DT, sto creando alcune tabelle. Il numero di colonne varia in base all'input dell'utente & non è stato risolto. Ho incluso il seguente frammento di codice per includere una barra di scorrimento orizzontale in modo che quando il numero di colonne sia ampio, l'utente possa scorrere le colonne che non sono direttamente visibili.Come rendere visibile la barra di scorrimento orizzontale in DT :: datatable

server.R:

output$results <- DT::renderDataTable({ 
    DT::datatable(data = datasetInput(), 
        options = list(scrollX = TRUE,...) 
       ) 
    }) 
<code reduced for brevity> 

Utilizzando il codice di cui sopra, la barra di scorrimento orizzontale non è visibile in un primo momento, ma quando clicco su una riga e ha colpito freccia destra sulla tastiera visualizzata. C'è un modo in cui la barra di scorrimento diventa visibile non appena la tabella viene attivata, non importa quante colonne ho, e posso trascinare la barra di scorrimento usando il puntatore del mouse?

Aggiornamento:

ho provato il codice nella risposta qui sotto e questo è quello che vedo - senza barra di scorrimento orizzontale.

enter image description here

+1

Si prega di fornire sempre il sessionInfo(). Non l'hai detto, ma suppongo che tu stia usando Mac OS X. Se è così, non c'è nulla di sorprendente. Questo è solo il comportamento predefinito di Mac: le barre di scorrimento sono nascoste per impostazione predefinita fino a quando non inizi a scorrere. –

+0

Grazie Yihui. È vero, sto usando MacOSX. Mi assicurerò che fornisca il mio sessionInfo() in futuro. –

+0

Non uso Mac spesso, ma suppongo che potrebbe esserci un modo per rendere sempre visibile la barra di scorrimento. Verifica se hai fortuna con Google ... –

risposta

14

Non credo che si può (o dovrebbe) forzare una barra di scorrimento facilmente se non hai bisogno di uno, ma il codice sopra funziona bene per me, mostra una barra di scorrimento quando la pagina viene inizializzato. Forse il problema è con i dati o qualcos'altro.

Ecco un esempio minimo che ha una barra di scorrimento orizzontale a pagina carico

runApp(shinyApp(
    ui = fluidPage(
    DT::dataTableOutput("results", width = 300) 
), 
    server = function(input, output, session) { 
    output$results <- DT::renderDataTable(
     mtcars, 
     options = list(scrollX = TRUE) 
    ) 
    } 
)) 
+0

Intendo dire che la barra di scorrimento funziona nel mio codice, ma non è visibile finché non faccio clic su una riga e non prendo la freccia destra. Non è visibile quindi non posso usare il puntatore del mouse per trascinarlo. –

+0

Non so quanto o se sia importante, ma sto usando le opzioni all'interno di 'DT :: datatable' e lo stai usando all'interno di' DT :: renderDataTable'. Suppongo che non sia questo il problema. Ma non riesco ancora a vedere ** la barra di scorrimento senza usare la tastiera e sicuramente non posso usare il mio mouse per scorrere. –

+0

hai ragione, l'utilizzo delle opzioni in 'renderDataTable' vs in' datatable' non fa differenza. Come ho detto, ho il sospetto che il problema non sia con il datatable ma con il set di dati o qualcos'altro sul tuo codice che sta causando questo, perché un semplice esempio semplice come quello che ho mostrato funziona. –

1

Prova questo:

DT::datatable(sta, options = list(
    pageLength=50, scrollX='400px'), filter = 'top')