I'm trying to build a application for myself to get every dataset in a folder, display those in a selectInput(), and then the column names from the data set in another selectInput(), so that when both values have been selected, it performs feature selection (with caret) and displays the output.

I've attached what I have done so far below, however I cannot test the selectInput() as the program closes itself as soon as its run with an error:

Warning: Error in dataset: could not find function "dataset" [No stack trace available]

Here is the code:

#datasets <- list('Maccas' = read.csv("menu.csv"))
#selectInput("dataset", "Please pick a data set", choices = names(datasets))

#####################
library(shiny)
library(datasets)

ui <- fluidPage(sidebarLayout(
  sidebarPanel(
    selectInput("dataset", "choose a dataset", c("Maccas")),
    selectInput("column", "select column", "placeholder1"),
    selectInput("level", "select level", "placeholder2")
  ),
  mainPanel(tableOutput("table"))
))

server <- function(input, output, session){
  dataset <- list(read.csv("menu.csv"))
  
  observe({
    updateSelectInput(session, "column", choices = names(dataset())) 
  })
  
  observeEvent(input$column, {
    column_levels <- as.character(sort(unique(
      dataset()[[input$column]]
    )))
    updateSelectInput(session, "level", choices = column_levels)
  })
  
  output$table <- renderTable({
    subset(dataset(), dataset()[[input$column]] == input$level)
  })
}

shinyApp(ui, server)
0

There are 0 best solutions below