Проблема в том, что объект ggplot должен иметь возвращаемое значение в renderPlot
.
Если input$radio == "days"
, все идет хорошо.Но если input$radio == "dayFare"
, if(input$radio == "days"){ ggplot(....) }}
равно NULL
, а , то является возвращаемым значением renderPlot
.
Простое исправление: замените if(input$radio == "days")
на else if(input$radio == "days")
.
Или более подробно о том, что возвращать, например:
output$distPlot <- renderPlot(
{
if(input$radio == "dayFare"){
return(
ggplot(data.frame(dayFare = c(3,50),days = c(0,31)), aes(x = days)) +
stat_function(fun = g,args = list(dayFare = input$Input))
)
}
if(input$radio == "days"){
return(
ggplot(data.frame(dayFare = c(3,50),days = c(0,31)), aes(x = dayFare)) +
stat_function(fun = g,args = list(days = input$Input))
)
}}
)
или:
output$distPlot <- renderPlot(
{
if(input$radio == "dayFare"){
my_plot <- ggplot(data.frame(dayFare = c(3,50),days = c(0,31)), aes(x = days)) +
stat_function(fun = g,args = list(dayFare = input$Input))
}
if(input$radio == "days"){
my_plot <- ggplot(data.frame(dayFare = c(3,50),days = c(0,31)), aes(x = dayFare)) +
stat_function(fun = g,args = list(days = input$Input))
}
my_plot
}
)