13

I am using the packet shiny for R and I implemented a dateRangeInput in my ui.R:

   dateRangeInput("date", "Date range:",
                       start  = "2013-05-15",
                       end    = "2013-10-01",
                       min    = "2013-05-15",
                       max    = "2013-10-01",
                       format = "dd/mm/yy",
                       separator = " - ")

If I display the selected min and max values, i get the following (weird) output:

Min date value:

renderText({(input$date[1])})

Output:

 15840

Max date value:

renderText({(input$date[2])})

Output:

15979

Why do I get these numbers in the output and not the selected ate from the ui.R itself: 2013-05-15 and 2013-10-01 ? And how can I transform it to such a format? as.Date does not work.

maRtin
  • 6,336
  • 11
  • 43
  • 66

3 Answers3

16

The actual value is days since the unix epoch, use format(input$date[1]).

tospig
  • 7,762
  • 14
  • 40
  • 79
mdsumner
  • 29,099
  • 6
  • 83
  • 91
3

You can use some thing like this

observe({
x <- format(input$date[1])

  cat(x,file="/home/indraneel/temp/r1outfile.txt",append=TRUE)

})
tospig
  • 7,762
  • 14
  • 40
  • 79
Indraneel
  • 306
  • 1
  • 3
  • 8
3

In my case for dateRangeInput selector, the results were strings

date_start <- input$dateRangeInput_name_one[1]
date_end <- input$dateRangeInput_name_one[2]

BTW: If you 'date' is integer you can convert it to 'date' by using the following code:

 date_start_date <- as.Date(date_start, origin = "1970-01-01")
 date_end_date <- as.Date(date_end, origin = "1970-01-01")
Andrii
  • 2,843
  • 27
  • 33