R Shiny Date范围输入

时间:2015-02-25 01:04:42

标签: r shiny date-range

我的ui中有一个日期范围输入功能,如我的闪亮应用程序。

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

但是,如果用户选择的开始日期晚于结束日期,而不是应用程序中的错误,我需要弹出消息来更正用户。我该怎么做?

也可以只允许用户选择超过x天的日期范围。

1 个答案:

答案 0 :(得分:10)

您可以使用validate语句提供自定义错误消息。这是一个简单的例子。

library(shiny)

runApp(
  list(
    ui = fluidPage(
      dateRangeInput("dates", 
                     "Date range",
                     start = "2015-01-01", 
                     end = as.character(Sys.Date())),
      textOutput("DateRange")
      ),

    server = function(input, output){
      output$DateRange <- renderText({
        # make sure end date later than start date
        validate(
          need(input$dates[2] > input$dates[1], "end date is earlier than start date"
               )
          )

        # make sure greater than 2 week difference
        validate(
          need(difftime(input$dates[2], input$dates[1], "days") > 14, "date range less the 14 days"
               )
          )

        paste("Your date range is", 
              difftime(input$dates[2], input$dates[1], units="days"),
              "days")
      })
    }
  ))
相关问题