2017-10-04 47 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") 
    ), 

我得到這個錯誤: 錯誤:非數值參數二元運算

感謝

+0

你想如何在'sliderInput'上顯示日期格式?數據集中的完整日期格式是什麼? – Sagar

+0

原始數據集中的完整日期格式爲yyyy-mm-dd,但是當彙總數據集以計算數據的月度平均值時,它會被降至yy-mm。在sliderInput上,格式可以是mm-yyyy或dd-mm-yyyy,並且自動初始化爲01。 – Boidot

+0

好的,請檢查下面的答案。 – Sagar

回答

0

library(zoo)包括yearmon這是一個代表每月數據的類。請參閱下面的代碼,它將13-05轉換爲13-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

相關問題