在 R markdown 闪亮文档中包含反应性文本
Include reactive text in a R markdown shiny documents
我有点迷茫,无法在 R markdown 文档的闪亮输出中添加反应测试 (te)。下面粘贴了一个基于 R studio 示例的最小示例。
非常感谢!
让-皮埃尔
---
title: "Untitled"
runtime: shiny
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r eruptions, echo=FALSE}
inputPanel(
selectInput("n_breaks", label = "Number of bins:",
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = "Bandwidth adjustment:",
min = 0.2, max = 2, value = 1, step = 0.2)
)
renderText({te})
renderPlot({
startTime <- Sys.time()
# additional code goes here
endTime <- Sys.time() +1
te <- reactive(startTime - endTime)
hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration")
dens <- density(faithful$eruptions, adjust = input$bw_adjust)
lines(dens, col = "blue")
})
```
我认为你应该使用 te <<- reactive(startTime - endTime)
在 renderPlot
之外定义 te
,使用 renderText({te()})
而不是 renderText({te})
因为它是一个反应式表达式,最后在定义后将 renderText({te()})
放在最后。
我有点迷茫,无法在 R markdown 文档的闪亮输出中添加反应测试 (te)。下面粘贴了一个基于 R studio 示例的最小示例。
非常感谢! 让-皮埃尔
---
title: "Untitled"
runtime: shiny
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r eruptions, echo=FALSE}
inputPanel(
selectInput("n_breaks", label = "Number of bins:",
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = "Bandwidth adjustment:",
min = 0.2, max = 2, value = 1, step = 0.2)
)
renderText({te})
renderPlot({
startTime <- Sys.time()
# additional code goes here
endTime <- Sys.time() +1
te <- reactive(startTime - endTime)
hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration")
dens <- density(faithful$eruptions, adjust = input$bw_adjust)
lines(dens, col = "blue")
})
```
我认为你应该使用 te <<- reactive(startTime - endTime)
在 renderPlot
之外定义 te
,使用 renderText({te()})
而不是 renderText({te})
因为它是一个反应式表达式,最后在定义后将 renderText({te()})
放在最后。