首页 > 解决方案 > 打开 R Shiny 对象时如何选择某个日期范围(使用 dateRangelist)?

问题描述

我有以下 UI 代码,它可以帮助我选择从 2016 年到 2020 年的多个时间段。但是,我希望第一次打开文件时的日期范围在 Today-14 天和今天之间,我尝试使用 as .Date(Sys.Date()-14) 在 min/start 中,但是它不起作用。你能帮忙吗?

ui <- fluidPage(
  
  # Application title
  titlePanel("Day-ahead prices"),
  
  # Sidebar with slider input to select date range
  sidebarLayout(
    sidebarPanel(
      # Add a Slider Input to select date range
      #sliderInput
      dateRangeInput("Date_range_selector", "Select Date Range",
                     start = as.Date("2016-01-01","%Y-%m-%d"),
                     end = as.Date("2020-12-01","%Y-%m-%d"),
                     
                     #min = as.Date("2020-10-01","%Y-%m-%d"),
                     #max = as.Date("2020-12-01","%Y-%m-%d"),
                     #value=c(as.Date(Sys.Date()-14),as.Date(Sys.Date())),
                     #format ="%Y-%m-%d" ))))

标签: rshiny

解决方案


它确实有效,您可能在其他地方遇到了问题。在这里,我向您展示添加Sys.Date()-14到代码时构建的 html。看看data-initial-date第一<input ....>行。

?shiny::dateRangeInput此外,在doc 文件中也使用相同的内容作为示例。尝试使用这样的选择器运行一个闪亮的示例应用程序,看看它是否有效

> Sys.Date()
[1] "2020-10-14"
> shiny::dateRangeInput("Date_range_selector", "Select Date Range",
+                start = as.Date(Sys.Date()-14,"%Y-%m-%d"),
+                end = as.Date("2020-12-01","%Y-%m-%d"))
<div id="Date_range_selector" class="shiny-date-range-input form-group shiny-input-container">
  <label class="control-label" for="Date_range_selector">Select Date Range</label>
  <div class="input-daterange input-group">
    <input class="input-sm form-control" type="text" data-date-language="en" data-date-week-start="0" data-date-format="yyyy-mm-dd" data-date-start-view="month" data-initial-date="2020-09-30" data-date-autoclose="true"/>
    <span class="input-group-addon"> to </span>
    <input class="input-sm form-control" type="text" data-date-language="en" data-date-week-start="0" data-date-format="yyyy-mm-dd" data-date-start-view="month" data-initial-date="2020-12-01" data-date-autoclose="true"/>
  </div>
</div>

推荐阅读