Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R仅适用于日期范围输入月份和年份_R_Shiny_Date Range_Shinydashboard - Fatal编程技术网

R仅适用于日期范围输入月份和年份

R仅适用于日期范围输入月份和年份,r,shiny,date-range,shinydashboard,R,Shiny,Date Range,Shinydashboard,有没有办法在Shiny中破解或创建一个dateRangeInput()选择器,以便它只选择月-年(无日期)或自动选择所选月份的第一天而不显示日期选择?或者我应该创建另一个月日期选择器(滑块、选择框…) 我想在选择日期时删除此步骤:查看下面的自定义函数monthStart,该函数可用于强制将日期设置为该月份和年份的第一个日期 #rm(list=ls()) library(shiny) monthStart <- function(x) { x <- as.POSIXlt(x)

有没有办法在Shiny中破解或创建一个
dateRangeInput()
选择器,以便它只选择月-年(无日期)或自动选择所选月份的第一天而不显示日期选择?或者我应该创建另一个月日期选择器(滑块、选择框…)


我想在选择日期时删除此步骤:

查看下面的自定义函数
monthStart
,该函数可用于强制将日期设置为该月份和年份的第一个日期

#rm(list=ls())
library(shiny)

monthStart <- function(x) {
  x <- as.POSIXlt(x)
  x$mday <- 1
  as.Date(x)
}

ui <- basicPage(dateRangeInput('dateRange',label = "Pédiode d'analyse : ",format = "mm/yyyy",language="fr",start = Sys.Date(), end=Sys.Date(),startview = "year",separator = " - "),
                textOutput("SliderText")
)
server <- shinyServer(function(input, output, session){

  Dates <- reactiveValues()
  observe({
    Dates$SelectedDates <- c(as.character(monthStart(input$dateRange[1])),as.character(monthStart(input$dateRange[2])))
  })
  output$SliderText <- renderText({Dates$SelectedDates})
})
shinyApp(ui = ui, server = server)
示例1,显示给定月份的第一天。如果您想在应用程序中使用date对象以供以后使用,这可能很有用,因此它将始终指向给定月份和年份的第一天

#rm(list=ls())
library(shiny)

monthStart <- function(x) {
  x <- as.POSIXlt(x)
  x$mday <- 1
  as.Date(x)
}

ui <- basicPage(dateRangeInput('dateRange',label = "Pédiode d'analyse : ",format = "mm/yyyy",language="fr",start = Sys.Date(), end=Sys.Date(),startview = "year",separator = " - "),
                textOutput("SliderText")
)
server <- shinyServer(function(input, output, session){

  Dates <- reactiveValues()
  observe({
    Dates$SelectedDates <- c(as.character(monthStart(input$dateRange[1])),as.character(monthStart(input$dateRange[2])))
  })
  output$SliderText <- renderText({Dates$SelectedDates})
})
shinyApp(ui = ui, server = server)
#rm(list=ls())
图书馆(闪亮)

monthStart我刚刚使用了
airDatePicker()
来实现这一点。您可以将弹出日历的最小视图编辑为“月”,并选择日期格式为“yyyy-mm”

我刚刚开发的版本看起来像这样(灰色的五月是我截图时光标悬停的地方):


好的,但我不想让用户认为已经选择了一天,实现这一点的最佳方法可能是使用mm-yyyy创建一个滑块或selectinput。因为我不知道您希望如何使用此功能,所以我还包括了这一天,因为在您的分析中,您可能需要它。出于显示目的,只需渲染日期而不显示日期。请参阅上面的更新抱歉,我没有解释清楚,我添加了一张图片来显示我要删除或隐藏的步骤。在这种情况下,您应该使用自定义的文本输入
#rm(list=ls())
library(shiny)

monthStart <- function(x) {
  x <- as.POSIXlt(x)
  x$mday <- 1
  as.Date(x)
}

ui <- basicPage(dateRangeInput('dateRange',label = "Pédiode d'analyse : ",format = "mm/yyyy",language="fr",start = Sys.Date(), end=Sys.Date(),startview = "year",separator = " - "),
                textOutput("SliderText")
)
server <- shinyServer(function(input, output, session){

  Dates <- reactiveValues()
  observe({
    Dates$SelectedDates <- c(as.character(format(input$dateRange[1],format = "%m/%Y")),as.character(format(input$dateRange[2],format = "%m/%Y")))
  })
  output$SliderText <- renderText({Dates$SelectedDates})
})
shinyApp(ui = ui, server = server)
airDatepickerInput("input_var_name",
                   label = "Start month",
                   value = "2015-10-01",
                   maxDate = "2016-08-01",
                   minDate = "2015-08-01",
                   view = "months", #editing what the popup calendar shows when it opens
                   minView = "months", #making it not possible to go down to a "days" view and pick the wrong date
                   dateFormat = "yyyy-mm"
                   )