0

我有“data1”和“data2”是两个数据表的名称。我将其保留为两个多项选择,以便在选择其中一个选项时可以在主面板中看到每个数据框。我可以在应用程序中看到选项,但是当我选择它们时,主面板中的数据框不会出现。由于我是 R Shiny 的新手,有人可以帮助我解决这个问题吗?

library(shiny)
data1 <- data.frame(
  SSN = c(500,1000,2000,3000,4000), 
  Name=c("Blossum","Buttercup","Bubbles","MojoJojo","Professor"), 
  Age = c(7,8,6,43,56), 
  Gender = c(0,0,0,1,1)
)


data2 <- data.frame(
  SSN = c(5000,6000,7000,8000,9000), 
  Name=c("Blossum","Buttercup","Bubbles","MojoJojo","Professor"), 
  Age = c(7,8,6,43,56), 
  Gender = c(0,0,0,1,1)
)



ui <- fluidPage(
  
  # App title ----
  titlePanel("Downloading Data"),
  
  # Sidebar layout with input and output definitions ----
  sidebarLayout(
    
    # Sidebar panel for inputs ----
    sidebarPanel(
      
      # Input: Choose dataset ----
      selectInput("dataset", "Choose a dataset:",
                  choices = c("SelectDataSet ", "data1")),
      # Button
      downloadButton("downloadData", "Download"),
      
      selectInput("dataset3", "View Summary:",
                  choices = c("SelectDataSet", "data2")),
      
      
      
      # Button
      downloadButton("downloadData", "Download")
      
    ),
    
    # Main panel for displaying outputs ----
    mainPanel(
      
      tableOutput("table")
      
    )
    
  )
)

server <- function(input, output) {
  
  # Reactive value for selected dataset ----
  datasetInput <- reactive({
    switch(input$dataset,
           "data1" = data1)
           
  })
  
  # Table of selected dataset ----
  output$table <- renderTable({
    datasetInput()
  })
  
  # Downloadable csv of selected dataset ----
  output$downloadData <- downloadHandler(
    filename = function() {
      paste(input$dataset, ".csv", sep = "")
    },
    content = function(file) {
      write.csv(datasetInput(), file, row.names = FALSE)
    }
  )
  datasetInput <- reactive({
    switch(input$dataset3,
           "data2" = data2)
  })
  
  # Table of selected dataset ----
  output$table <- renderTable({
    datasetInput()
  })
}
  
shinyApp(ui, server)
4

0 回答 0