Ich verwende das DT
-Paket, um eine Datentabelle in meiner shiny
App anzuzeigen. Da ich verschiedene Datensätze zur Verfügung stelle, habe ich Optionsfelder, um sie auszuwählen, und die Datentabelle wird automatisch aktualisiert.Ausgewählte Zeilen beim Ändern des Datensatzes in glänzender DT-Datentabelle beibehalten
Was ich tun möchte, ist die Vorauswahl der verfügbaren Zeilen von df1
in df2
beim Umschalten der Datensätze. Im Moment wird meine Auswahl immer gelöscht. Wenn ich versuche, die ausgewählten Zeilen zu speichern (die beiden Zeilen auskommentieren), wird meine Tabelle direkt zurückgesetzt.
library(shiny)
library(DT)
df1 <- data.frame(names=letters,
values=1:26)
df2 <- data.frame(names=letters,
values=(1:26)*2)[seq(1,26,2),]
ui <- shinyUI(
fluidPage(
sidebarLayout(
sidebarPanel(
radioButtons("dataset", label=h5("Select dataset"),
choices=list("df1"='df1',
"df2"='df2'),
selected='df1', inline=TRUE)
),
mainPanel(
DT::dataTableOutput("name_table")
)
)
)
)
Server-Seite ...
server <- function(input, output, session) {
getDataset <- reactive({
result <- list()
result[['dataset']] <- switch(input$dataset,
'df1'=df1,
'df2'=df2)
# result[['selection']] <-
# as.numeric(input$name_table_rows_selected)
return(result)
})
output$name_table <- DT::renderDataTable({
DT::datatable(getDataset()[['dataset']],
options=list(pageLength=5))
})
name_proxy = DT::dataTableProxy('name_table')
}
shinyApp(ui, server)
Ich benutzte die DT
Tabelle, da ich den Proxy und einige Interaktion mit der Datentabelle müssen.
, das sieht gut aus! Danke für beide Vorschläge! – drmariod