Подтвердить что ты не робот

RStudio Shiny Conditional Plot

Я пытаюсь создать веб-приложение с новой функцией RStudio Shiny, которая отображает разные запасы. Я создал следующий пример.

Я хочу выбрать набор данных StockMarket, затем выбрать, например, DAX, а затем, наконец, график должен появиться.

Прямо сейчас, если вы запустите этот код, график появится сразу

Не могли бы вы мне помочь?

ui.R:
library(shiny)
library(ggplot2)

shinyUI(pageWithSidebar(

# Application title
headerPanel("Plot1"),
sidebarPanel(
selectInput("dataset", "Dataset", list("mtcars"="cars", "StockMarket"="stocks")),

conditionalPanel(
  condition = "input.dataset=='stocks'",
  uiOutput("data")
)),
mainPanel(
plotOutput('plotstock')) ))


server.R:
library(shiny)
require(ggplot2)
library(datasets)

shinyServer(function(input, output) {

output$data<- reactiveUI(function() {

selectInput("data", "Choose Dataset", colnames(EuStockMarkets))
})

output$plotstock <- reactivePlot(function() {
data<-data.frame(EuStockMarkets)
p<- ggplot(data,aes(x=seq(1,length(data[,1])),y=DAX))+geom_line(size=1)+ylab("")+opts(title="Time Series")
print(p)
 })})
4b9b3361

Ответ 1

В функции reactivePlot вы можете сделать что-то вроде

if (is.null(input$data))
  return(NULL)

Я также добавил бы пустую запись в выборку набора данных ("(Choose one)"=""), а также

if (!nzchar(input$dataset))
  return(NULL)

в reactivePlot.

Ответ 2

Также убедитесь, что вы проверяете пустые строки

if (!nzchar(input$dataset) || input$dataset=='')
return(NULL)