2014-11-29 18 views

cevap

3

Ben aynı sorun koştu ve bunu bir metin alanı yapım sona erdi. Ben kullanıcılara Doğru biçimi göstermek için metin alanını nüfusun önceden ve alan düzgün bir şey yapmadan önce biçimlendirilmiş emin olmak için try kullanarak (kontrol eklenen.

textInput("fromDatetime", "From:", value = "9999-99-99 99:99:99") 

Sonra UI.R

itibaren

server.R içinde

fromDTtry = try(as.POSIXct(fromDatetime)) 

    if (!(is.POSIXct(fromDTtry))) { 
    return ("From date/time not formatted correctly") 
    } else { 
... } 

umarım bu yardımcı olur. Umarım Parlak yerli tarihten konusunda karar verecek yakında/zaman destek.

4

Onun been oldukça bazen Bu soru ortaya çıktığı için, ancak zaman girişlerini almak için tatmin edici bir cevap bulamadığım için, konuyla ilgili olduğunu tahmin ediyorum.

Bir zaman girişi almak için 3 örnek aşağıda verilmiştir.

  1. Bunlardan ilki, benim de dahil olduğum veya aradığımız insanların çoğuna inanıyorum. Zaman girişi alımı için parlak bir giriş zamanı nesnesi. HTML zaman girişini kullanır: < input id = 'ui_time' type = 'time'> ve ardından Shiny.onInputChange() işlevine aktarmadan önce giriş verilerini almak için bazı basit javascript işleviyle parlak sunucuya giriş .

    '<script> document.getElementById("ui_time").onchange = function() { var time = document.getElementById("ui_time").value; Shiny.onInputChange("input_html", time); }; </script>'

  2. muhtemelen sürgü kullanımına istenen ancak sopa değil ikinci,

    <input id="ui_time" type="time">

    zaman ve başka kayıt, bir tane 2 kaydırıcıları oluşturmak için basit ama hantal kotarımdır Uygun bir zaman girişi döndürmek için 2 sonucu birleştirmeden önce dakikaları kaydedin.

    sliderInput("slider_hours", "Hours:", min=0, max=23, value=0, step = 1), sliderInput("slider_mins", "Mins:",min = 0, max = 59, value = 0, step = 1)

  3. Son olarak, tarih ve saat biçimleri gerekiyorsa ben kaydırıcı POSIXt nesneler olarak tarih saat girişlerini kabul yapar, olmasaydı gibi bazı, farkında olmayabilir.

    sliderInput("slider_datetime", "Date & Time:", min=as.POSIXlt("2010-01-01 00:00:00", "GMT"), max=as.POSIXlt("2020-01-01 23:59:59", "GMT"), value=as.POSIXlt("2010-01-01 00:00:00", "GMT"), timezone = "GMT") parlak veya html daha az bilgi sahibi olanlar için

, benim github işlevsel bir örnek kod görüntüleyebilir: https://github.com/krenova/Shiny_TimeInput/blob/master/app.R

aşağıdaki şekilde, bu durumda, bir sürgü girişi yapılabilir ya da sadece Ar aşağıdaki özünü çalıştırın: bir parlak yeniyim

runGist('https://gist.github.com/krenova/fc184de17892905182a422c96117e989')

d html, geçen hafta aldım, bu yüzden lütfen işleri en uygun şekilde yapamayacağımı unutmayın. Her durumda, umarım yukarıda birisi saatlerce tasarruf eder!

+0

Sadece bir cevaba verdin, ama sadece yazdığım 'shinyTime 'paketiyle ilgilenebilirsin;) http://stackoverflow.com/a/38440748/1439843 –

+0

Çözüm 1'i umuyordum. Bunun yanı sıra, Firefox'ta çalışmaz ve RStudio, parlak uygulamaları göstermek için Firefox'u kullanır :( –

+0

haha ​​ne garip bir tesadüf. Teşekkürler, paketinizin daha önce serbest bırakılmasını dilerim, bir çözüm bulmam için saatler sürdü! o da itfaiyeci üzerinde çalışmayacak. +1 :) – krenova

1

Şimdi, Parlak Uygulamaya girme süresi için shinyTime paketini kullanabilirsiniz. Şu anda birlikte %H:%M veya %H:%M:%S biçiminde zaman oluşturan ayrı sayısal girişlerle çalışır. R değerinin alınması ve ayarlanması DateTime nesnesi ile yapılır.

Örnek kullanım (ayrıca example on shinyapps bakınız):

library(shiny) 
library(shinyTime) 

ui <- fluidPage(

    titlePanel("shinyTime Example App"), 

    sidebarLayout(
     sidebarPanel(
     timeInput("time_input", "Enter time", value = strptime("12:34:56", "%T")) 
    ), 

     mainPanel(
     textOutput("time_output") 
    ) 
    ) 
) 

server <- function(input, output, session) { 
    output$time_output <- renderText(strftime(input$time_input, "%T")) 
} 

shinyApp(ui, server) 

Yasal Uyarı: Ben paket yazarıyım. Geribildirim ve öneriler en hoş geldiniz!

+0

Anlatabildiğim kadarıyla, bu sadece saat seçmenizi sağlar: dakika: saniye (zaman bilgisi), ama orijinal soru sorulduğu gibi tarih-zaman bilgisi, doğru mu? ? –

+0

@DeanAttili, evet, ancak, daha iyi seçenekler için sorulan orijinal soru doğru, ve ben şu anda en iyi seçenek olduğunu düşünüyorum. –