15

我正在尝试使用新的 RStudio 功能 Shiny 创建一个 Web 应用程序,该功能可以绘制不同的股票。我创建了以下示例。

我想选择数据集 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)
 })})
4

2 回答 2

20

reactivePlot函数中,您可以执行类似的操作

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

我还将在数据集选项 ( "(Choose one)"="") 中添加一个空白条目,并且还有

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

reactivePlot.

于 2012-11-15T18:40:30.547 回答
0

还要确保检查空字符串

if (!nzchar(input$dataset) || input$dataset=='')
return(NULL)
于 2015-03-25T01:57:50.577 回答