R 闪亮日期范围输入
R Shiny Date range input
我的 ui 有一个日期范围输入函数,如下所示,用于我闪亮的应用程序。
dateRangeInput("dates",
"Date range",
start = "2015-01-01",
end = as.character(Sys.Date()))
但是,如果用户选择的开始日期晚于结束日期,我希望弹出消息来更正用户,而不是应用程序中出现错误。我该怎么做?
还有可能只允许用户选择超过 x 天的日期范围。
您可以使用 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")
})
}
))
我的 ui 有一个日期范围输入函数,如下所示,用于我闪亮的应用程序。
dateRangeInput("dates",
"Date range",
start = "2015-01-01",
end = as.character(Sys.Date()))
但是,如果用户选择的开始日期晚于结束日期,我希望弹出消息来更正用户,而不是应用程序中出现错误。我该怎么做?
还有可能只允许用户选择超过 x 天的日期范围。
您可以使用 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")
})
}
))