I am trying to subset a data frame base on the Province column and the City column. In shiny, I want to let the user choose the province then the city, with the selectInput UI.
Heres what the data frame looks like.
ColumnInfoTemp[2]
is the city, InfoTemp[3]
is the province.
The dataset is big, they actually have many levels.
Year Autumn InfoTemp[2] InfoTemp[3] 1913 8.9 SHAWNIGAN LAKE BC 1914 9.5 SHAWNIGAN LAKE BC 1915 9.3 SHAWNIGAN LAKE BC 1916 8.5 SHAWNIGAN LAKE BC 1917 9.9 SHAWNIGAN LAKE BC 1918 -9999.9 SHAWNIGAN LAKE BC
Ultimately, this is a plot (for a city) I am planning to go.
Here is the code so far, did not do anything...
server.R
library(shiny)
shinyServer(function(input, output) {
#MeanTemp
load("CanadianMeanTemp.Rdata")
province = input$provinces
city = input$cities
output$distPlot <- renderPlot({
MeanTemp_province = MeanTemp[grep(c(province), MeanTemp$`InfoTemp[3]`),]
MeanTemp_city = MeanTemp_province[grep(c(city), MeanTemp$`InfoTemp[2]`),]
plot(MeanTemp_city$Year, MeanTemp_city$Annual, type = "l")
lines(supsmu(MeanTemp_city$Year, MeanTemp_city$Annual), col = 2)
})
})
ui.R
library(shiny)
shinyUI(fluidPage(
titlePanel("Temperature"),
sidebarLayout(
sidebarPanel(
selectInput('provinces', 'Province', choices = levels(MeanTemp$`InfoTemp[3]`)),
conditionalPanel(
condition = "input.provinces == true",
selectInput('cities', 'City', choices = levels(MeanTemp_province$`InfoTemp[2]`))
)
),
mainPanel(
plotOutput("distPlot")
)
)
))