【问题标题】:Displaying Output of Expression Using Shiny Reactive Input in RMarkdown在 RMarkdown 中使用闪亮的反应输入显示表达式的输出
【发布时间】:2015-08-11 06:21:28
【问题描述】:

我的 rmd 文件在下面。它应该很容易重现,因为它只使用 Sys.Date() 和滑块输入。

---
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}) 正确显示输入值,并在用户移动滑块时更新它。

但是 observe(print(display_date)) 没有显示任何内容。我从下面的示例中采用了观察(打印())方法,来自 SO 答案using values from a reactive input to directly input into a custom function

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

此外,虽然当我在 RStudio 中单击“运行文档”时,查看器窗格中没有显示日期,但当我在查看器窗格中移动滑块时,RStudio 控制台(RMarkdown-tab)会显示日期。输出示例(每次移动滑块时都会添加一行): 创建的输出:

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》

所以我无法弄清楚为什么它不会显示在启动的文档中。

【问题讨论】:

    标签: r shiny r-markdown


    【解决方案1】:

    在这里。

    renderPrint(displayDate()) 而不是observe(print(display_date())) 对我有用。实际上,我主要需要能够显示 str(displayDate()) 来帮助我调试代码中的其他内容。

    无论如何,下面的代码块使用 sliderInput 和一个日期来创建一个变通日期滑块,因为没有闪亮的 dateSlider 输入函数。这就是我试图解决这个问题的原因。

    ---
    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())
    ```
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2017-11-30
      • 2021-05-25
      • 2018-01-17
      • 1970-01-01
      相关资源
      最近更新 更多