看一看这个自定义功能monthStart
以下可用于强制日期到该月份和年份的第一个日期
示例1,显示给定月份的第一天。如果要使用日期对象为您的应用程序以后使用,这可能是有用的,所以它总是指向一个特定的月份的第一天,年
#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)
例2,只显示年份和月份
#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)
好,但我不希望用户认为牛逼选择一天的帽子,可能是实现这一目标的最佳方式,就是创建一个带mm-yyyy的滑块或选择输入。 – TiFr3D
因为我不知道你想如何使用这个功能,所以我还包括了这一天,因为在你的分析中你可能需要它。出于显示目的,您可以简单地在没有一天的情况下渲染日期。查看以上更新 –
对不起,我没有解释清楚,我添加了一张图片来显示我想要删除或隐藏的步骤。 – TiFr3D