2017-01-18 3 views
3

dateInput scheint auf die Auswahl eines einzigen Datums beschränkt zu sein.Möglichkeit, zahlreiche nicht kontinuierliche Daten mit Datumseingabe in Shiny auszuwählen?

dateRangeInput können Sie nur eine Reihe von Daten in einer Reihe auswählen.

Gibt es eine Möglichkeit, mehrere Datumsangaben auszuwählen, die nicht in einer Reihe liegen (d. H. Daten, die nicht kontinuierlich sind)?

Was ich wirklich will, ist ein Kalender, in dem ich mehrere Daten auswählen (klick-on) kann, wodurch alle diese Daten als separate Eingabewerte ausgewählt werden.

Zum Beispiel, wenn möglich, würde Ich mag Lage sein, dies zu tun:

shiny calendar with multiple selected dates

+1

Diese glänzend mit Basis nicht möglich ist. Alternativ können Sie auch 'selectInput' verwenden, um mehrere Werte ohne Datumsauswahl auszuwählen oder mehrere 'dateInput' zu verwenden. Sie können auch eine in JavaScript mit http://multidatespickr.sourceforge.net/ erstellen – HubertL

Antwort

0

ich die Funktion dateinput umschreiben.

Und auch können Sie einen Blick auf: enter link

mydateInput <- function(inputId, label, value = NULL, min = NULL, max = NULL, 
         format = "yyyy-mm-dd", startview = "month", weekstart = 0, language = "en", minviewmode="months", 
         width = NULL) { 

    # If value is a date object, convert it to a string with yyyy-mm-dd format 
    # Same for min and max 
    if (inherits(value, "Date")) value <- format(value, "%Y-%m-%d") 
    if (inherits(min, "Date")) min <- format(min, "%Y-%m-%d") 
    if (inherits(max, "Date")) max <- format(max, "%Y-%m-%d") 

    htmltools::attachDependencies(
    tags$div(
      class = "shiny-date-input form-group shiny-input-container", 
      style = if (!is.null(width)) paste0("width: ", validateCssUnit(width), ";"), 

      controlLabel(inputId, label), 
      tags$input(id = inputId, type = "text", 
         # datepicker class necessary for dropdown to display correctly 
         class = "form-control datepicker", 
         `data-date-language` = language, 
         `data-date-weekstart` = weekstart, 
         `data-date-format` = format, 
         `data-date-start-view` = startview, 
         `data-date-min-view-mode` = minviewmode, 
         `data-min-date` = min, 
         `data-max-date` = max, 
         `data-initial-date` = value, 
         `data-date-multidate` = 'true' 

      ) 
    ), 
    datePickerDependency 
) 
} 

`%AND%` <- function(x, y) { 
    if (!is.null(x) && !is.na(x)) 
    if (!is.null(y) && !is.na(y)) 
     return(y) 
    return(NULL) 
} 

controlLabel <- function(controlName, label) { 
    label %AND% tags$label(class = "control-label", `for` = controlName, label) 
} 

datePickerDependency <- htmltools::htmlDependency(
    "bootstrap-datepicker", "1.6.4", c(href = "shared/datepicker"), 
    script = "js/bootstrap-datepicker.min.js", 
    stylesheet = "css/bootstrap-datepicker3.min.css", 
    # Need to enable noConflict mode. See #1346. 
    head = "<script> 
    (function() { 
    var datepicker = $.fn.datepicker.noConflict(); 
    $.fn.bsDatepicker = datepicker; 
    })(); 
    </script>") 


    [1]: https://stackoverflow.com/questions/31152960/display-only-months-in-daterangeinput-or-dateinput-for-a-shiny-app-r-programmin/32171132 
Verwandte Themen