2017-10-04 8 views
0

私はファイルを読み込むことができる光沢のあるアプリを持っています。私はファイルから最小および最大の日付範囲を抽出することは望ましくありません。これは、これらをスライダー入力の入力として使用します。ここで入力ファイルの日付を光沢のあるスライダー入力の最小値と最大値として使用する

は、私がこれまで

ui <- fluidPage(
dateRangeInput(inputId = "date", label = "Input a date range", start=textOutput("datemin") , end = textOutput("datemax"),"%d-%m-%y")) 
) 
server = function(input, output){ 
output$datemin <- renderText({as.character(as.Date(paste("01",as.character.Date(min(dataset()$date)),sep="-"),"%d-%y-%m"))}) 
    output$datemax <- renderText({as.character(as.Date(paste("01",as.character.Date(max(dataset()$date)),sep="-"),"%d-%y-%m"))}) 
} 

私は出力dateminとdatemaxは少しトリッキーです知っているもので、データセット内の「日付」欄は、「13から05のように文字列であるので、これがあります"2013年5月(データセットは一部の値を月単位で要約したものです)

編集。

私はフォーマットをチェックするために私の日付の3種類の出力を試してみた、と次のように私はtextoutputとしてそれらを表示:

UI

textOutput("datemin1"), 
    textOutput("datemin2"), 
    textOutput("datemin3"), 

サーバー

output$datemin1 <- renderText({(as.character.Date(min(dataset()$date)))}) 
output$datemin2 <- renderText({as.character(as.Date(paste("01",as.character.Date(min(dataset()$datem)),sep="-"),"%d-%y-%m"))}) 
output$datemin3 <- reactive({as.Date(as.yearmon(min(dataset()$datem)))}) 

出力は次のとおりです。

datemin1 : 14-01
datemin2 : 2014-01-01
datemin3 : 0014-01-01

しかし、まだ、私は次のように私のスライダーの入力値として出力を使用しようとすると:

sliderInput("slider1", "Date Range", 
       min = textOutput("datemin2"), max=textOutput("datemax2"), 
       value = textOutput("datemax2") 
    ), 

私はこのエラーを取得する: ERROR:非数値引数のバイナリオペレータへ

おかげ

+0

どのように 'sliderInput'に日付フォーマットを表示したいですか?あなたのデータセットの完全な日付形式は何ですか? – Sagar

+0

元々、データセットの完全な日付フォーマットはyyyy-mm-ddですが、データセットを集計して毎月の平均データを計算すると、yy-mmになります。 sliderInputでは、フォーマットはmm-yyyyまたはdd-mm-yyyyになり、日は01に自動的に初期化されます。 – Boidot

+0

さて、以下の答えを確認してください。 – Sagar

答えて

0

library(zoo)は、月データを表すクラスであるyearmonを含む。下記のコードをご覧ください。13-0513-05-01に変換します。

library(shiny) 
library(zoo) 

dataset <- data.frame(minDate = c('13-05'), maxDate = c('14-05')) 

if(interactive()){ 
    shinyApp(
    ui <- fluidPage(
     sliderInput("slider1", "Date Range", 
        min = as.Date(as.yearmon(dataset$minDate)), 
        max = as.Date(as.yearmon(dataset$maxDate)), 
        value = as.Date(as.yearmon(dataset$minDate)) 
       ) 
    ), 

    server = function(input, output){ 

     } 
) 
} 
+0

ありがとうございます。このソリューションは問題なく動作しますが、例のようにスタンドアロンのデータセットから日付が取得されない場合でも機能しません。私は私の質問に編集を加えました。 – Boidot

関連する問題