我的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”
所以我无法弄清楚为什么它不会显示在已启动的文档中。
答案 0 :(得分: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())
```