2017-11-04 3 views
1

Ich versuche, Spalten in einer Datentabelle mit RadioButtons anzuzeigen, die der Benutzer ändern kann.Verwenden von RadioButtons zum Anzeigen von Spalten in Datentabelle (glänzend)

Bisher ist mein Code:

UI:

fluidRow(column(4, radioButtons("radio","Choose:",c("A","B"))))), 
fluidRow(DT::dataTableOutput("table")) 

Server:

Ausgang

$table <- DT::renderDataTable({ 
    DT::datatable({table 

    if (input$radio != "A") { 
    table <- table[,1:5] 
    } 

    if (input$radio != "B") { 
    table <- table[,6:10)] 
    } 

    table 

})},rownames = FALSE,options = list(lengthMenu = c(25,50,100))) 

Wenn ich die App starte, werden nur die RadioButtons mit A und B angezeigt, aber keine Datentabelle.

+1

Warum nicht einfach die Erweiterung colVis verwenden? https://studio.github.io/DT/extensions.html –

+0

in Zeile 2 Ihrer 'Ausgabe $ Tabelle',' DT :: Datatable ({Tabelle 'was ist" Tabelle "dort für? –

+0

@Addison Hayes Kannst du Akzeptieren Sie die Antwort, wenn es für Sie hilfreich war? – Santosh

Antwort

0

Es gibt viele Probleme mit Ihrem Code. Ich habe Ihren Code repariert und im mtCars-Dataset getestet.

library(shiny) 

ui <- fluidPage(

    sidebarLayout(
    sidebarPanel(
     radioButtons("radio","Choose:", choices = list("A" = "A", "B" = "B")) 
    ), 

    mainPanel(
     dataTableOutput("table") 
    ) 
    ) 
) 

server <- function(input, output) { 

    output$table <- renderDataTable({ 
    if (input$radio == "A") { 
     table1 <- mtcars[,1:5] 
    } 
    else { 
     table1 <- mtcars[,6:10] 
    } 
    table1 
    }) 
} 

# Run the application 
shinyApp(ui = ui, server = server) 

Wenn Sie diese App ausführen, sehen Sie eine Datentabelle basierend auf Ihrer Optionsfeldauswahl.

Verwandte Themen