【问题标题】:How can I restrict a dateInput in R to specific months?如何将 R 中的 dateInput 限制为特定月份?
【发布时间】:2016-01-29 21:28:44
【问题描述】:

我想实现一个具有 dateInput 的 Shiny 应用程序,但我想限制用户选择月份范围(例如 1 月 - 6 月),而不管年份。有什么办法吗?

【问题讨论】:

标签: r date shiny


【解决方案1】:

没问题,给你:

test_dt <- seq(as.Date('2015-01-01'), as.Date('2015-12-31'), by = "month")
as.character(test_dt, format = "%B")

[1] "January"   "February"  "March"     "April"     "May"       "June"      "July"      "August"    "September" "October"   "November"  "December"

【讨论】:

  • 在这个例子中你指定了年份,而我不想要那个。我希望 dateInput 可以使用所有年份,但只有一个月的限制。
  • 对于日期,你实际上需要指定一个年份(格式是as.Date('1970-01-01', format = '%Y-%m-%d'),但是当我做as.character时,它会将数据变成一个字符向量。这个没有任何年份信息。对于您描述的场景,我认为应该这样做,并且可能是使用factor更合适的情况。
  • Alex 感谢您的更新。事实是,我想让应用程序的用户有可能从 dataInput 中选择任何年份和日期的日期,但可用的月份必须是年份的子集。所以在dataInput中我必须输入一个开始,一个结束,一个最小值和一个最大值。是否有另一种日期解决方案或默认库的可能解决方法?
【解决方案2】:

可能你可以通过validate... need构造实现这个功能,在这里你可以检查用户输入的月份是否在要求的范围内。你可以在这里阅读更多:http://shiny.rstudio.com/reference/shiny/latest/validate.html

【讨论】:

  • 这是个好主意!我会先尝试其他想到的东西。如果它不起作用,我会尝试它!我会更新帖子的细节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-10-22
  • 2018-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多