I am trying to create a simple shiny app for plotting histogram inside rstudio running on Amazon ec2 for my result data stored as .RData file. I have double checked everything. It looks fine. I have also checked the data types: all are numeric.
My codes:
ui.R
# shiny plots on top_docs data
library(shiny)
shinyUI(fluidPage(
# Header title
titlePanel(title = h4("Top doctors plots - a histograms", align = "center")),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput(
selectInput("var", "1, Select the variables from top doc summary file",
choices =c( "service_total" = 1,
"ben_total" = 2,
"payment" = 3,
"charged" = 4,
"allowed" = 5,
"unique_services_per_patient" = 6,
"duplicates_per_service" = 7,
"services_per_patient" = 8), selected= 1 ),
br(),
sliderInput("bins", "2, Select the number of BINs for histogram", min = 5, max = 40, value=20),
br(),
radioButtons("color", "3, Select the color of histogram", choices =c("Green", "Red", "Yellow"), selected= "Green")
)),
# Show a plot of the generated distribution
mainPanel(
plotOutput("myhist")
)
))
)
server.R
`library(ggplot2)
library(shiny)
options(shiny.error=browser)
load("/******/top_docs.RData", envir=.GlobalEnv)
shinyServer(function(input, output) {
output$myhist <- renderPlot({
# generate var based on input$var from ui.R
col <- as.numeric(input$var)
hist(top_docs[,col], breaks = seq(0, max(top_docs[,col], l = input$bins+1), col=input$color, main="Histogram of Top docs", xlab=names(top_docs[col])))
})
})
`
Found it... All the sidebarPanel
content was inside a sliderInput
function that gives error
top_docs = data.frame( service_total = sample(1:100000, 40, replace=T),
ben_total = sample(1:100000, 40, replace=T)
, payment = sample(1:100000, 40, replace=T), charged = sample(1:100000, 40, replace=T)
, allowed = sample(1:100000, 40, replace=T), unique_services_per_patient = runif(40, 1, 5.2)
, duplicates_per_service = runif(40, 1.1, 16.2), services_per_patient = runif(40, 1.3, 70) )
# shiny plots on top_docs data
library(shiny)
ui <- fluidPage(
# Header title
titlePanel(title = h4("Top doctors plots - a histograms", align = "center")),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
# sliderInput( < ------------- HERE
selectInput("var", "1, Select the variables from top doc summary file",
choices =c( "service_total" = 1,
"ben_total" = 2,
"payment" = 3,
"charged" = 4,
"allowed" = 5,
"unique_services_per_patient" = 6,
"duplicates_per_service" = 7,
"services_per_patient" = 8), selected= 1 ),
br(),
sliderInput("bins", "2, Select the number of BINs for histogram", min = 5, max = 40, value=20),
br(),
radioButtons("color", "3, Select the color of histogram", choices =c("Green", "Red", "Yellow"), selected= "Green")
# ) < ------------- HERE
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("myhist")
)
))
server <- shinyServer(function(input, output) {
output$myhist <- renderPlot({
# generate var based on input$var from ui.R
col <- as.numeric(input$var)
hist(top_docs[,col], breaks = seq(0, max(top_docs[,col]), l = input$bins+1)
, col=input$color, main="Histogram of Top docs", xlab=names(top_docs[col]))
})
})
shinyApp(ui, server)