Switching from fluidpage to dashboard

I have code that I need to convert to use Dashboard ...are fluid page and Dashboard mutually exclusive ...do I need to re-write it?

library(ggplot2)
library(scales)
library(shiny)

ui <- fluidPage(

Sidebar layout with a input and output definitions

sidebarLayout(

# Inputs
sidebarPanel(

  # Select variable for y-axis
  selectInput(inputId = "y", 
              label = "Y-axis:",
              choices = c("Water Level" = "WaterLevel", 
                          "Discharge Debit" = "DischargeDebit"), 
              selected = "WaterLevel"),

  selectInput(inputId = "z", 
              label = "station:",
              choices = c(
                "NORTH SASKATCHEWAN RIVER NEAR DEER CREEK"="05EF001",
                "BATTLE RIVER NEAR PONOKA"="05FA001",
                "BATTLE RIVER AT DUHAMEL"="05FA011",
                "PIGEON LAKE AT PIGEON LAKE PROVINCIAL PARK"="05FA013",
                "MASKWA CREEK NO. 1 ABOVE BEARHILLS LAKE"="05FA014"
              ), 
              selected = "05EF001")

),

# Output
mainPanel(
  plotOutput(outputId = "lineplot")
)

)
)

server <- function(input, output) {
file = "http://dd.weather.gc.ca/hydrometric/csv/SK/hourly/SK_hourly_hydrometric.csv"
skdat <- read.csv(file, head=T, sep=",", dec=".", stringsAsFactors = F)
colnames(skdat) <- c("ID", "Date", "WaterLevel", "Grade1", "Symbol1",
"QAQC-1", "DischargeDebit", "Grade2", "Symbol2",
"QAQC-2")

Switched the date time to skdat from subds to not mess with reactivity until later

skdat$datetime <- as.POSIXct(skdat$Date, format = "%Y-%m-%dT%H:%M:%OS")

You need to have a logical condition for subset, == not =

subds <- reactive({subset(skdat, ID == input$z)})

Switched the use of as.name to rlang::sym

output$lineplot <- renderPlot({
ggplot(subds(), aes(x = datetime, y = !!sym(input$y))) + geom_line()
})

}

Create a Shiny app object

shinyApp(ui = ui, server = server)

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.