R日期范围输入

R日期范围输入,r,shiny,date-range,R,Shiny,Date Range,我有一个日期范围输入功能,如下所示,在我的ui中为我的闪亮应用程序 dateRangeInput("dates", "Date range", start = "2015-01-01", end = as.character(Sys.Date())) 但是,如果用户选择的开始日期晚于结束日期,而不是应用程序中的错误,我希望弹出一条消息来更正用户。我该怎么做 也可以只允许用户选择一个超过(比如x)天的日期范围。您可以使用验证语句提供自定义错误消息。下面是一个简单的

我有一个日期范围输入功能,如下所示,在我的ui中为我的闪亮应用程序

  dateRangeInput("dates", 
    "Date range",
    start = "2015-01-01", 
    end = as.character(Sys.Date()))
但是,如果用户选择的开始日期晚于结束日期,而不是应用程序中的错误,我希望弹出一条消息来更正用户。我该怎么做


也可以只允许用户选择一个超过(比如x)天的日期范围。

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

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")
      })
    }
  ))
库(闪亮)
runApp(
名单(
ui=fluidPage(
dateRangeInput(“日期”,
“日期范围”,
start=“2015-01-01”,
end=as.character(Sys.Date()),
文本输出(“日期范围”)
),
服务器=功能(输入、输出){
输出$DateRange输入$dates[1],“结束日期早于开始日期”
)
)
#确保差异大于2周
证实(
需要(difftime(输入$dates[2],输入$dates[1],“天”)>14,“日期范围小于14天”
)
)
粘贴(“您的日期范围是”,
difftime(输入$dates[2],输入$dates[1],units=“days”),
“天”)
})
}
))

对不起,我的意思是只允许用户在其数据范围内输入14天或更长时间。@Vik,您只需添加另一个
验证
语句即可。见我的编辑上面。