【发布时间】:2017-09-22 16:56:59
【问题描述】:
我有一个闪亮的应用程序,用户选择多个日期范围,我想防止用户使用 lapply 函数中的 dateRangeInput 设置开始日期之前的结束日期。我如何在 R 中编写代码?感谢您查看这个。
这是我的代码
library(shiny)
ui <-fluidPage(
checkboxInput("add_trend", "Add Trend(s)"),
conditionalPanel(condition="input.add_trend === true",
numericInput("numoftrends",
label="Number of Linear Trends:",
min = 1,
max = 10,
value = 1,
step = 1),
uiOutput("num_of_trends"),
textOutput("see_ranges")
),
actionButton("submit", "Submit")
)
server <- function(input, output, session) {
output$num_of_trends <- renderUI({
lapply(1:input$numoftrends, function(i) {
dateRangeInput(paste0("date_range_input", i),
paste('Trend Date Range Input', i, ':'),
separator = " - ",
format = "yyyy-mm",
startview = 'year',
start = "2001-01-01",
end = "2020-12-31",
min = "2001-01-01",
max = "2020-12-31"
)
})
})
trend_list <- reactive({
out <- list()
for(i in 1:input$numoftrends) {
out[[i]] <- input[[paste0("date_range_input", i)]]
}
out
})
output$see_ranges <- renderPrint({
print(trend_list())
})
}
shinyApp(ui = ui, server = server)
【问题讨论】: