2

My rmd file is below. It should be easily reproducible as it just uses Sys.Date() and the slider input.

---
output: html_document 
runtime: shiny
---

```{r, echo=FALSE, error=FALSE, message=FALSE}
sliderInput("daysback", "Days back from today: ", min=1, max=45, value=30, step=1)

renderText({input$daysback})

display_date = reactive({Sys.Date() - input$daysback})
observe(print(display_date()))
```

renderText({input$daysback}) correctly displays the input value, and updates it as the user moves the slider.

However observe(print(display_date)) isn't displaying anything. I took the observe(print()) approach from the example below, from the SO answer using values from a reactive input to directly input into a custom function

num_square = reactive({input$num^2}) 
observe(print(num_square()))

Also, although no dates are displaying in the viewer pane when I click "Run Document" in RStudio, the RStudio console (RMarkdown-tab) is showing dates as I move the slider in the viewer pane. A sample of the output (a row is added each time I move the slider): Output created:

C:/Users/vuser/AppData/Local/Temp/RtmpSiQ52I/file125c17cd231.html [1] "2015-04-28" [1] "2015-05-08" [1] "2015-04-27" [1] "2015-05-03"

So I can't figure out why it won't display in the launched document.

1 Answer 1

2

OP here.

renderPrint(displayDate()) instead of observe(print(display_date())) did the trick for me. I actually mainly needed to be able to display str(displayDate()) to help me debug something else in my code.

Anyway, the code chunk below uses sliderInput and and a date to create a workaround date slider, since there's not a shiny dateSlider input function. That was what I was trying to get to with this question.

---
runtime: shiny
output: html_document
---

```{r}
sliderInput("sliderDays", "Days forward from 1/1/2015: ", min=1, max=45, value=1, step=1)

display_date = reactive({as.Date("2015-01-01") + input$sliderDays})
renderPrint(display_date())
```
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.