rshiny美学必须是长度1或与数据(1)相同:x,y,组

时间:2017-04-17 05:31:24

标签: r ggplot2 shiny

我是R和R闪亮的初学者。我想在R shiny中绘制“data_plot”(“data_sum”的子集)。

data_sum

data_plot

在R中,以下代码有效。 “开始”和“结束”是决定哪个是“子集”的日期。

date_range<-unique(data_sum$Category)    
start<-match("2015-10",date_range)
end<-match("2015-12",date_range)

month_plot<-as.vector(date_range[start:end])

data_plot<-subset(data_sum, data_sum$Category %in% month_plot)

ggplot(aes(x= Category, y= x, group=1), data=data_plot) + 
  geom_line(colour="red")+
  geom_line(aes(y=first_thr), linetype="dashed")+
  geom_line(aes(y=second_thr), linetype="dashed")+
  ylim(0,600)

根据上面的R代码,我为R shiny编写了以下代码。现在,“开始”和“结束”是来自“ui”的输入。

date_range<-unique(data_sum$Category) 

server <- function(input, output) {
  start<-reactive({match(input$start_month,date_range)})
  end<-reactive({match(input$end_month,date_range)})
  month_plot<-reactive({date_range[start():end()]})
  data_plot<-reactive({subset(data_sum,data_sum$Month==month_plot())})

  output$monthly_sum <- renderPlot({
    ggplot(aes(x= Category, y= x, group=1), data=data_plot()) + 
      geom_line(colour="red")+
      geom_line(aes(y=first_thr), linetype="dashed")+
      geom_line(aes(y=second_thr), linetype="dashed")+
      ylim(0,600)
    })
}

但是,我收到了以下错误。你能告诉我如何解决这个问题吗?

Aesthetics must be either length 1 or the same as the data (1): x, y, group

0 个答案:

没有答案