【问题标题】:Reactive R/Shiny Example Fails after Parameterizing One Variable参数化一个变量后反应式 R/Shiny 示例失败
【发布时间】:2015-05-31 01:49:03
【问题描述】:

我有以下简单且有效的 Shiny-Rmarkdown 文档。它会生成一个滑块并在下面输出一个日期,该日期会根据滑块输入进行调整。

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

```{r}
library(rmarkdown); library(ggvis); library(shiny);

sliderInput("sliderDays", "Days forward from 1/1/2014: ", min=0, max=45, value=1, step=1)

graphDate = reactive({as.Date("2014-01-01") + input$sliderDays})
renderPrint(graphDate()) 
```

但是,如果我将 graphDate = reactive({as.Date("2014-01-01") + input$sliderDays}) 替换为

startDate <- as.Date("2014-04-01")
graphDate <- reactive({startDate + input$SliderDays})

那么renderPrint(graphDate()) 的输出来自

1 "2014-04-01" [滑块输入会改变,但始终是日期]

字符(0)

我不明白为什么 startDate 必须在 graphDate 反应函数中创建和使用,而不是在它的正上方定义并在反应函数中引用才能工作。

sessionInfo()
## R version 3.2.0 (2015-04-16)
## Platform: i386-w64-mingw32/i386 (32-bit)
## Running under: Windows 7 x64 (build 7601) Service Pack 1
## 
## locale:
## [1] LC_COLLATE=English_United States.1252 
## [2] LC_CTYPE=English_United States.1252   
## [3] LC_MONETARY=English_United States.1252
## [4] LC_NUMERIC=C                          
## [5] LC_TIME=English_United States.1252    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] DT_0.0.52         shiny_0.12.0      knitr_1.10.5      ggvis_0.4.1.9000 
## [5] rmarkdown_0.6.2.2
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_0.11.6      digest_0.6.8     dplyr_0.4.1      assertthat_0.1  
##  [5] mime_0.3         R6_2.0.1         xtable_1.7-4     jsonlite_0.9.16 
##  [9] DBI_0.3.1        formatR_1.2      magrittr_1.5     evaluate_0.7    
## [13] stringi_0.4-1    rstudioapi_0.3.1 tools_3.2.0      stringr_1.0.0   
## [17] htmlwidgets_0.4  yaml_2.1.13      httpuv_1.3.2     parallel_3.2.0  
## [21] htmltools_0.2.6

【问题讨论】:

    标签: r shiny r-markdown


    【解决方案1】:

    似乎对我有用。我没听错吗?

    版本信息和会话信息:

    【讨论】:

    • 嗨,迈克非常感谢您的快速响应。你正确理解了这个问题。这很好奇,我正在查看具有相同代码但输出不同的文档。我会将我呈现的文档的 PDF 附加到我的答案中。
    • 嘿,迈克,非常感谢 (+1),但不幸的是,现在我对找到解决方案不太有信心,因为看起来我们正在查看产生不同输出的相同代码。知道为什么会这样吗?
    • 吊杆已修复。哇,我有点害怕我在 SO 上发布了一个大写错误。非常感谢。
    • 我做得更糟。坦率地说,这是一个很好的小例子。
    • 嘿,你应该联系我。看起来我在您所在的地区(能源和智能建筑)工作,很想与专业人士交谈,因为我完全是绿色的。 gmail 的 mikewise1618
    猜你喜欢
    • 1970-01-01
    • 2021-01-07
    • 2015-06-25
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 2013-06-29
    相关资源
    最近更新 更多