首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >闪亮的R日期输入Pop消息

闪亮的R日期输入Pop消息
EN

Stack Overflow用户
提问于 2015-02-25 02:07:33
回答 1查看 1.5K关注 0票数 1

我有一个应用程序的服务器文件,它从雅虎财务获取股票信息,从用户输入的股票符号获取股票信息。这里相关的服务器代码是

代码语言:javascript
复制
dataInput <- reactive({
  getSymbols(input$symb, src = "yahoo", 
    from = input$dates[1],
    to = input$dates[2],
    auto.assign = FALSE)
})

而ui.r代码是

代码语言:javascript
复制
  textInput("symb", "Symbol", "^FTSE"),

  dateRangeInput("dates", 
    "Date range",
    start = "2015-01-01", 
    end = as.character(Sys.Date())),

  submitButton("Analysis"),width=6)

这将给出以下内容

但是,如果用户输入的符号不正确或不是股票,我将得到以下错误

代码语言:javascript
复制
Error in download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  : 
  cannot open URL 'http://ichart.finance.yahoo.com/table.csv?s=sdf&a=11&b=16&c=2014&d=1&e=25&f=2015&g=d&q=q&y=0&z=sdf&x=.csv'

这是好的,因为它不能打开url,因为不存在他们输入的符号的股票。但是,我希望出现一条弹出消息,说明他们插入的股票符号不存在。我已经尝试过这样做,包括bsAlert()方法,但我似乎做不到。任何帮助都是很好的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-25 10:00:41

获得符号时可以使用try/catch,如果出现错误,可以使用bsAlert

app.R

代码语言:javascript
复制
library(quantmod)
library(shinyBS)

server<-function(input, output,session) {
  #get the symbol data
  symbolData<-reactive({
    #try/catch in case there is an error
    data<-tryCatch({
      #if there is a bsAlert, close it
      closeAlert(session, "alert")
      #try to get the symbols
      getSymbols(input$symb, src = "yahoo", 
               from = input$dates[1],
               to = input$dates[2],
               auto.assign = FALSE)},
               #if there is an error
               error=function(cond) {
                 #create the bsAlert
                 createAlert(session, inputId = "alert_anchor",
                             alertId="alert",
                             message = "Please enter a valid symbol",
                             type = "warning",
                             append="false",
                             dismiss = FALSE
                 )
                 #return an empty string
                 return("")
               })
    data
    })

  #as an example, output the table
  output$table<-renderDataTable({symbolData()})
}

ui<-fluidPage(
  fluidRow(
    column(3, wellPanel(
      textInput("symb", "Symbol", "^FTSE"),
      bsAlert(inputId = "alert_anchor"),
      dateRangeInput("dates", 
                     "Date range",
                     start = "2015-01-01", 
                     end = as.character(Sys.Date())),
      submitButton("Submit")
    )),
  column(6, dataTableOutput("table"))

  ))
shinyApp(ui = ui, server = server)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28709922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档