2016-12-07 7 views
0

dateRangeInput() 선택기를 Shiny로 해킹 또는 생성하여 월 단위 (하루 없음) 만 선택하거나 해당 월의 첫 번째 날짜를 자동으로 선택하도록합니다. 하루의 선택?R Shiny DateRange 입력 월 연도 만

답변

1

dateRangeInput이 사용자 정의 기능 monthStart에서보세요 : 또는 다른 달 날짜 선택 (슬라이더, 선택 박스를 ...)을 생성한다

dateRangeInput('dateRange',label = "Pédiode d'analyse : ",format = "mm/yyyy",language="fr", 
    start = Sys.Date() %m-% months(12), end=Sys.Date(),startview = "year",separator = " - ") 

내가 원하는 날짜를 선택이 단계를 삭제하는 것입니다 이 날짜는 그 달과 년의 첫 번째 날짜로 날짜를 강제하는 데 사용할 수 있습니다.

예 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) 

enter image description here

예 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) 

enter image description here

+0

좋아,하지만 나는 t 사용자가 생각하지 않으 모자 하루가 선택되었습니다 달성하는 가장 좋은 방법은 슬라이더 또는 mm - yyyy와 selectinput을 만드는 것입니다. – TiFr3D

+0

이 기능을 어떻게 사용하고 싶은지 알지 못해 분석을 할 때 필요할 수도 있으므로 하루도 포함 시켰습니다. 표시 목적으로, 날짜없이 렌더링 만하면됩니다. 위의 업데이트를 참조하십시오. –

+0

죄송합니다. 명확하게 설명하지 않았으므로 삭제하거나 숨기고 싶은 단계를 보여주는 그림을 추가했습니다. – TiFr3D