在RMarkdown中使用闪亮的无功输入显示表达式的输出

时间:2015-05-28 16:02:40

标签: r shiny r-markdown

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

$(".div-img").each(function() {

        var maxHeight = 700;
        var imgHeight = $(this).height();
        var permalink = $(".view-content").attr("href", "<?php echo the_permalink(); ?>");

        if (imgHeight > maxHeight) {
            $(this).append('<a href="" class="view-full-content view-content external-link fa-external-link-square">View Full Content<span class="crop"></span></a>').find(".cropping-a").css({
                'max-height': '500px',
                'overflow': 'hidden',
                'display': 'block'
            });
        }

    });

renderText({input $ daysback})正确显示输入值,并在用户移动滑块时对其进行更新。

然而,观察(print(display_date))没有显示任何内容。我从SO回答using values from a reactive input to directly input into a custom function

中采用了以下示例中的observe(print())方法
---
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()))
```

此外,虽然当我点击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”

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

1 个答案:

答案 0 :(得分:1)

OP在这里。

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