根据滑块位置更改图形

时间:2017-11-26 01:34:32

标签: r

这是我的代码。我试图制作一个rshiny页面,以显示过去30天内根据滑块位置(1到12 - 月份)的状态的平均症状。我知道它有点草率但我几乎拥有它。我可以得到一个图表,根据滑块上的月份更改标题,但图表只列出所有数据,而不是按月。任何帮助都会很棒。

  `asthma = read.csv("AsthmaChild.Ozone.2006_2007.Sample.csv")
  state.month = asthma[,-3:-10]
  state.month = state.month[,-4]
  state.month = aggregate(state.month$Symptoms.Past30D ~ state.month$STATE + 
  state.month$Month, state.month, mean)
  colnames(state.month) = c("STATE", "Month", "Symptoms.Past30D")

  sd = asthma[,-3:-10]
  sd = sd[,-4]
  sd = aggregate(sd$Symptoms.Past30D ~ sd$STATE + sd$Month, sd, function(x) 
  sd = sd(x))
  colnames(sd) = c("STATE", "Month", "sd")

  merged = merge(state.month,sd, by=c("STATE", "Month"))

  df = count(asthma, "STATE", "Month")
  colnames(df) = c("STATE","Freq")
  data = merge(df, merged,by=c("STATE"))
  data$sem = (data$sd)/(sqrt(data$Freq))
  merged = data
  merged$ConfUp = (merged$Symptoms.Past30D) + (merged$sem)
  merged$ConfDown = (merged$Symptoms.Past30D) - (merged$sem)


  merged$Month = as.character(merged$Month)
  merged$Month = gsub("12", "December", merged$Month)
  merged$Month = gsub("11", "November", merged$Month)
  merged$Month = gsub("10", "October", merged$Month)
  merged$Month = gsub("9", "September", merged$Month)
  merged$Month = gsub("8", "August", merged$Month)
  merged$Month = gsub("7", "July", merged$Month)
  merged$Month = gsub("6", "June", merged$Month)
  merged$Month = gsub("5", "May", merged$Month)
  merged$Month = gsub("4", "April", merged$Month)
  merged$Month = gsub("3", "March", merged$Month)
  merged$Month = gsub("2", "February", merged$Month)
  merged$Month = gsub("1", "January", merged$Month)

  index = c(1:12)
  values = c("January", "February", "March", "April", "May", "June", "July", 
  "August", "September", "October", "November", "December")


  ui = fluidPage(
    sidebarPanel( 
     sliderInput("Month", "Month: Jan=1, Dec=12",min = 1, max = 
     12,step=1,value=1)),
     mainPanel(plotOutput("plot")))

  server = function(input,output){


  sliderInput(inputId="Month",
                       label="Month: Jan=1, Dec=12",
                       min = 1,
                       max = 12,
                       value=1,
                       step=1)

           mainPanel(plotOutput("plot"))

  dat = reactive({
   test <- merged[merged$Month %in% 
   seq(from=min(input$Month),to=max(input$Month),by=1),]
    })             

  output$plot = renderPlot({
   ggplot(data=merged, aes(x=Symptoms.Past30D, y = STATE)) +  
   geom_errorbarh(aes(xmin=ConfUp,xmax=ConfDown), height=1, linetype = 1) + 
   xlab ("Mean Sympotms.Past30D (SEM)") + ylab ("STATE")  + 
   labs(title=paste(values[match(input$Month, index)]))
   })
   }
   shinyApp(ui, server)`

0 个答案:

没有答案
相关问题