Ich habe eine Shiny-App, die eine Datentabelle ergibt, aber ich kann nicht die erste Spalte und die Header einfrieren, so dass die Tabelle schwer zu lesen ist, wie Sie oder gehen über. Gibt es trotzdem die Scheiben einzufrieren? Ich habe versucht zu suchen, habe aber nichts gefunden.Freezing Header und erste Spalte mit data.table in Shiny
Antwort
Interessante Frage und jetzt dank der jüngsten Aktualisierung von Shiny zu data.tables 1.10.2
es viel einfacher ist, die verschiedenen Plug-Ins und Erweiterungen zu verwenden. Für Ihre Frage scheint die FixedHeader Erweiterung ideal. So fügen Sie diese Erweiterung müssen wir die entsprechende JavaScript
und CSS
Datei enthalten (siehe http://cdn.datatables.net/):
tagList(
singleton(tags$head(tags$script(src='//cdn.datatables.net/fixedheader/2.1.2/js/dataTables.fixedHeader.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdn.datatables.net/fixedheader/2.1.2/css/dataTables.fixedHeader.css',rel='stylesheet',type='text/css')))
)
data.tables
hat eine Option initComplete
, die uns einen Rückruf an, bestimmen können, sobald Tisch gezogen wird usw.
function(settings, json) {
new $.fn.dataTable.FixedHeader(this, {
left: true,
right: true
});
}
Wir werden eine modifizierte Version des iris
Datensatzes verwenden einen Index und einige zufällige Daten am Ende hinzufügen, um von links nach rechts Scrollen zu zeigen:
library(shiny)
myData <- cbind(list(index = row.names(iris)), iris
, rep(list(row.names(iris)), 10))
names(myData)[7:16] <- paste0("randomData", 1:10)
runApp(
list(ui = fluidPage(
tagList(
singleton(tags$head(tags$script(src='//cdn.datatables.net/fixedheader/2.1.2/js/dataTables.fixedHeader.min.js',type='text/javascript'))),
singleton(tags$head(tags$link(href='//cdn.datatables.net/fixedheader/2.1.2/css/dataTables.fixedHeader.css',rel='stylesheet',type='text/css')))
),
dataTableOutput("mytable")
)
, server = function(input, output, session){
output$mytable <- renderDataTable(myData,
options = list(
pageLength = 50,
initComplete = I("function(settings, json){
new $.fn.dataTable.FixedHeader(this, {
left: true,
right: true
});
}")
)
)
})
)
so in dem Bild können wir sehen, wir sind bis 8 und über einige Wege nach unten gescrollt, aber der Header und die erste Spalte (unsere Spalte hinzugefügt Index) sind noch sichtbar.
glücklich, wenn die Antwort löst helfen Ihre Frage gilt es zu markieren, indem Sie sie ankreuzen. – jdharrison
Vielen Dank für Ihre Hilfe! Gibt es eine Möglichkeit, den Header der ersten Spalte einzufrieren, so dass er sichtbar ist, wenn ich nach rechts scrolle? – Kamal
Nach der 'dataTables'-Dokumentation und Ihrer exzellenten detaillierten Antwort habe ich das 'FixedColumns'-Plugin in einer meiner glänzenden Apps ausprobiert. Ich habe 'fixedcolumns/3.0.2' css und js Dateien sowie 'dataTables 1.10.4' css und js Dateien in meine Kopfzeile aufgenommen und die' initComplete' in meine Optionen mit einer kleinen Änderung wie folgt eingeschlossen: 'function (settings, json) { new $ .fn.dataTable.FixedColumns (this, {}); } '. Wenn ich die App jedoch ausführte, zeigte die Tabelle weiterhin die Meldung "processing ..." an und wurde nicht wie erwartet geladen. Ich verwende derzeit die neueste glänzende Version, 0,11. Gedanken? –
FixedHeader nicht funktioniert, gibt falsche Spaltennamen während x-Scrollen, aber FixedColumns funktioniert. Es ist aufgrund incompatibility zwischen ihnen
library(shiny)
library(DT)
runApp(
list(ui = fluidPage(
dataTableOutput("mytable")
)
, server = function(input, output, session){
Rows <- c(1:50)
for (y in 1:15){
x<-y-1
assign(letters[x+1],runif(5, 0, 1))
}
x <- data.frame(Rows, mget(letters[1:15]), row.names=NULL)
x<- x[2:15]
output$mytable <- renderDataTable(
DT::datatable(x, rownames=FALSE,extensions = c('FixedColumns',"FixedHeader"),
options = list(dom = 't',
scrollX = TRUE,
paging=FALSE,
fixedHeader=TRUE,
fixedColumns = list(leftColumns = 1, rightColumns = 0))
)
)
}
)
)
- 1. Eine GWT CellTable mit eingefrorenen Header und erste Spalte
- 2. TCP Freezing mit VB.NET
- 3. Erste Spalte eines Gitters sind die Header?
- 4. Tabelle festen Header und erste Spalte CSS/html
- 5. Pass data.table Spalte mit Namen in Funktion
- 6. Freezing UI mit async/erwarten
- 7. data.table: neue Spalte (Monate)
- 8. Freezing Rails + Redcloth = Probleme?
- 9. Freeze erste Spalte und Detail
- 10. konvertieren data.frame in data.table Spalte fehlt
- 11. data.table r erstellen neue Spalte mit Bezug auf Spalte
- 12. Shiny selectInput von Spalte DF
- 13. Spalte in leere data.table hinzufügen in R
- 14. Subset data.table durch logische Spalte
- 15. Header in QML-Spalte
- 16. R: finde die erste Nicht-NA-Beobachtung in der Spalte data.table nach Gruppe
- 17. subtrahieren jede Spalte voneinander Spalte in einer R data.table
- 18. Wie kann monogoimport.exe erste Spalte und Kopfzeile in CSV überspringen?
- 19. mehrere Header in einer Spalte mit Datagrid
- 20. Effektiveres Zusammenführen der übereinstimmenden Spalte mit Duplikaten in data.table
- 21. Unable DT :: Datentabelle auf data.table :: data.table Objekt
- 22. R Shiny wählen Spalte von checkboxGroupInput
- 23. einen Druckfehler bekommen, während Vektor data.table Spalte
- 24. data.table Berechnung mehrere Spalte auf einmal
- 25. data.table - Gruppe nach allen außer einer Spalte
- 26. Probleme mit Shiny PCA und ggbiplot Färbung
- 27. WPF DataGrid ComboBox Spalte: Vermehren Header Combobox in Spalte
- 28. Herstellung eines Bildes Hyperlink in R Shiny Header
- 29. Warum data.table CJ nicht respektieren Spalte Großordnung
- 30. Ändern Sie die Farbe einer Zeile basierend auf anderen Spalte mit DT - Shiny - R
letzten Shiny Update Folgen, können Sie versuchen, hier und sehen, was Sortiermöglichkeiten zur Verfügung stehen https://datatables.net/upgrade/1.10-convert –