2016-06-07 15 views
6

Parlak yazıyorum ve tarih için bir kaydırıcı istedim. Verilerimdeki tarih aylık ve bir defada bir ay ilerlemek istiyorum. Kaydırıcı girişi için docs, adım değerinin min/max parametre türlerine bağlı olarak saniye veya gün cinsinden olduğunu belirtir.Parlak Slider Giriş adım aya göre

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

ben değil aylık olarak gün geçtikçe adım muktedir istiyorum ama onlar bana vermek ne mümkün görünmüyor: Şu anda var. Ekleyebildiğim js snippet'i bana bu işlevselliği verecek mi?

Açıklama Not: Bu işlev için dokümanlar okudum ve bunun için temel işlevler olmadığını en iyi anladığım kadarıyla. Zaman formatı parametresi, test edildiğinde, sadece etiketleri değil değerleri değiştirir. Belirli widget'ların değerlerine erişen ve bunun mümkün olup olmadığını merak eden birkaç mesaj gördüm. Örneğin)

<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("-"); 
          } 
          }) 
+0

Neden 'dateInput' denetimi kullanmıyorsun? –

+0

sorunuzu yanlış oku: cevabımı ay – SymbolixAU

+1

@MikeWise'a göre güncellemeliyim çünkü kaydırma çubuğunun – Marsenau

cevap

9

sliderInput içinde timeFormat işlevi yoktur. Daha fazla bilgi için Slider Input Widget adresini ziyaret edin.

DÜZENLEME:

tarihleri ​​çıkmak ve analizinizde sonradan bunları kullanmak için çok kredi bu soruya First day of the month from a POSIXct date time using lubridate ve Roland tarafından sağlanan işlevine gider.

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) 

enter image description here

+2

sağladığı animasyon seçeneğini kullanmak istiyorum. Bu bana aylık adım atma işlevi vermiyor. Sadece kaydırma çubuğundaki etiketlere format parametresine eşdeğerdir. Bunu test ettim ve tarih, eğer varsa ve eğer olmasaydı yine de adım adım ilerler. – Marsenau

+2

@ user2864849 düzenleme görmek –

+0

Aferin, teşekkürler! – Stophface