Блестящий ввод слайдер шаг за месяцем

Я пишу блестящий и хотел слайдер для даты. Дата в моих данных помесячная, и я хотел бы сделать шаг вперед на месяц.документы для ввода ползунка скажите, что значение шага указывается либо в секундах, либо в днях, в зависимости от типов параметров min / max. В настоящее время у меня есть:

sliderInput("slider", "Time", min=as.Date("2005-01-01"),
                              max=as.Date("2014-12-01"),
                              value=as.Date("2005-01-01"), step = 30,...)

Я хочу быть в состоянии шаг за шагом, а не днем, но это кажется невозможным из того, что они мне дают. Могу ли я добавить фрагмент js, который бы дал мне эту функциональность?

Пояснение: я прочитал документы по этой функции, и, насколько я понимаю, для этого нет базовых функций. Параметр формата времени после тестирования изменяет только метки, а не значения. Я видел пару сообщений, которые имеют доступ к значениям определенных виджетов, и мне было интересно, возможно ли это. Например)

<script type="text/javascript">
    $(document).ready(function() {
    var slider = $("#slider").slider();
 // override the default "nice" function.
    slider.nice = function(value) {
    var ref_date = new Date("2005-01-01");
 // each slider step is 1 day, translating to 24 * 3600 * 1000 milliseconds
    var slider_date = new Date(ref_date.getTime() + value * 24 * 3600 * 1000);
                          return [slider_date.getUTCFullYear(), 
                          slider_date.getUTCMonth() + 1, 
                          slider_date.getUTCDate()].join("-");
                          }
                          })
 Mike Wise08 июн. 2016 г., 00:11
Почему бы вам не использоватьdateInput контроль?
 Marsenau08 июн. 2016 г., 14:28
@MikeWise, потому что я хотел бы использовать параметр анимации, который предоставляет слайдер
 SymbolixAU08 июн. 2016 г., 00:14
неправильно прочитал ваш вопрос: обновлю мой ответ до месяца

Ответы на вопрос(1)

Решение Вопроса

EстьtimeFormat функция в пределахsliderInput, Для получения дополнительной информации посетитеВиджет ввода слайдера.

РЕДАКТИРОВАТЬ:

Чтобы получить даты и использовать их позже в своем анализе, большая заслуга в этом вопросеПервый день месяца из даты POSIXct с использованием lubridate и функция, предоставляемая Роландом.

rm(list=ls())
library(shiny)
monthStart <- function(x) {
  x <- as.POSIXlt(x)
  x$mday <- 1
  as.Date(x)
}
ui <- basicPage(sliderInput("slider", "Time", min = as.Date("2010-01-01"),max =as.Date("2014-12-01"),value=as.Date("2014-12-01"),timeFormat="%b %Y"),
                textOutput("SliderText")
                )
server <- shinyServer(function(input, output, session){

  sliderMonth <- reactiveValues()
  observe({
    full.date <- as.POSIXct(input$slider, tz="GMT")
    sliderMonth$Month <- as.character(monthStart(full.date))
  })
  output$SliderText <- renderText({sliderMonth$Month})
})
shinyApp(ui = ui, server = server)

 Pork Chop08 июн. 2016 г., 16:25
@ user2864849 см. правку
 Stophface12 июн. 2016 г., 14:25
Молодцы, спасибо!
 Marsenau08 июн. 2016 г., 14:41
Это не дает мне ежемесячную пошаговую функциональность. Изменяются только метки на ползунке, чтобы они были эквивалентны параметру формата. Я проверил это, и дата все еще продвигается шаг за шагом, если предоставлено, и днем, если нет.
 Josh O'Brien09 мая 2017 г., 18:04
@PorkChop Кажется, чтоIon.RangeSlider«svalues= аргумент, который позволяет указать символьные векторы в качестве входных данных, это ключевой бит, который мне нужен. Насколько вы знаете, сделать любой изблестящийВ настоящее время ползунки ввода поддерживают эту опцию, и если нет, то это функция, которую вы предлагаете, я спрашиваюблестящий Разработчики для реализации?
 Pork Chop09 мая 2017 г., 08:39
@ JoshO'Brien, я думаю, что весь ползунок был переписан в том ужасном ответе, который я считаю ненужным. Я думаю, что было бы проще спроситьshiny разработчики, чтобы добавить эту функциональность в одном из своих обновлений
 Josh O'Brien09 мая 2017 г., 18:13
@PorkChop Похоже, что уже есть ряд связанных запросов, обадля этой конкретной функции, и дляболее общий доступ ко всем опциям Ion.RangeSlider делает возможным. (Нашли оба по ссылке изэтот так ответ).
 Josh O'Brien08 мая 2017 г., 22:03
@Marsenau - у меня была точно такая же потребность, как и у вас, для слайдера, который фактически перемещается по одному месяцу за раз и, к моему удовольствию, нашел решение вэтот потрясающий ответ.

Ваш ответ на вопрос