32
votes

My ui.R file has a selectInput like this:

selectInput("variable1", "Choose Option:", camps)

where camps is supposed to be a vector of options. This vector depends on a sql query that runs on the server script and returns the IDs of the camps:

server.R

df1 <- getCamps("date")
camps <- unique(df1$idCamps)

When I run the App the ui.R does not know what "camps" is because it is only created in the server.R file. How can I pass the vector of camps created in the server.R file to the ui.R file so that they are now the options to choose from in the selectInput selector?

2

2 Answers

35
votes

You need to create an input object in server.R, and return it to ui.R as part of the output list:

In server.R:

df1 <- getCamps("date")
camps <- unique(df1$idCamps)
output$campSelector <- renderUI({
   selectInput("variable1", "Choose Option:", as.list(camps)) 
})

In ui.R:

uiOutput("campSelector")
0
votes

Easier way: Worked for me with barPlot() function. names(dataframe_name[colm]) ,

where in my case colm was colm <- as.numeric(input$parameters)

and I was getting parameters from ui.r, where parameters was

selectInput("parameters", label = "1. Select the variable from the U.F.O. dataset", choices = c("Shape" = 7, "Country" = 4, "AM/PM" = 3, "State" = 6))