如何在 Rmarkdown 演示文稿(slidy)中回显代码之前显示块输出?
How to display chunk output before echoing code in Rmarkdown presentation (slidy)?
我最近开始使用 Rmarkdown 中的 Slidy 演示文稿模板,喜欢每张幻灯片如何让您向下滚动以获取更多内容。
我使用它的一种方式是与我的学生分享情节(参见下面的示例代码)。在一张幻灯片上,我可以显示绘图以及用于创建绘图的确切代码,可以通过向下滚动查看。
---
title: Echo Code Chunks After Code Results
subtitle: Thanks For Your Help
author: Me
date: "today"
output: slidy_presentation
runtime: shiny
---
## Slide with Interactive Plot
```{r, echo=TRUE, warning=FALSE, message=FALSE}
shinyApp(options = list(width = "100%", height = "700px"),
ui = ( fluidPage(
inputPanel(
selectInput("n_breaks", label = h3("Number of bins:"),
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = h3("Bandwidth:"),
min = 0.2, max = 2, value = 1, step = 0.2)),
plotOutput("stuff", height = "650px")
)),
server = function(input,output,session) {
output$stuff = renderPlot({
hist(faithful$eruptions, probability = TRUE,
breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration",
col = "bisque", border = 1)
dens <- density(faithful$eruptions, adjust = input$bw_adjust, lwd = 2, col = "blue")
lines(dens, col = "blue")
})
})
```
我遇到的问题是默认行为是在代码结果之前回显代码块,这与我想要的相反。
我显然可以通过插入两个代码块来解决这个问题,其中第一个有块选项 echo=FALSE
,第二个有 echo=TRUE, fig.show='hide'
,但这需要我确保两个代码块匹配。 如何反转此顺序以在回显代码之前显示图表。
一如既往,感谢您的帮助。
对于演示文稿的正文,您应该能够按照自己的意愿进行操作。
## Slide with Interactive Plot
```{r thecode, echo=FALSE, warning=FALSE, message=FALSE}
shinyApp(options = list(width = "100%", height = "700px"),
ui = (fluidPage(inputPanel(
selectInput("n_breaks", label = h3("Number of bins:"),
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = h3("Bandwidth:"),
min = 0.2, max = 2, value = 1, step = 0.2)),
plotOutput("stuff", height = "650px"))),
server = function(input,output,session) {
output$stuff = renderPlot({
hist(faithful$eruptions, probability = TRUE,
breaks = as.numeric(input$n_breaks), xlab = "Duration (minutes)",
main = "Geyser eruption duration", col = "bisque", border = 1)
dens <- density(faithful$eruptions, adjust = input$bw_adjust,
lwd = 2, col = "blue")
lines(dens, col = "blue")})
})
```
```{r thecode, eval=FALSE}
```
即:
- 创建两个同名的代码块(此处
thecode
)。
- 在第一个代码块中,设置
echo = FALSE
这样代码就不会打印出来,但仍然会被计算。
- 在第二个代码块中,设置
echo = TRUE
,但保持代码块完全为空(栅栏之间也没有空行)。
我最近开始使用 Rmarkdown 中的 Slidy 演示文稿模板,喜欢每张幻灯片如何让您向下滚动以获取更多内容。
我使用它的一种方式是与我的学生分享情节(参见下面的示例代码)。在一张幻灯片上,我可以显示绘图以及用于创建绘图的确切代码,可以通过向下滚动查看。
---
title: Echo Code Chunks After Code Results
subtitle: Thanks For Your Help
author: Me
date: "today"
output: slidy_presentation
runtime: shiny
---
## Slide with Interactive Plot
```{r, echo=TRUE, warning=FALSE, message=FALSE}
shinyApp(options = list(width = "100%", height = "700px"),
ui = ( fluidPage(
inputPanel(
selectInput("n_breaks", label = h3("Number of bins:"),
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = h3("Bandwidth:"),
min = 0.2, max = 2, value = 1, step = 0.2)),
plotOutput("stuff", height = "650px")
)),
server = function(input,output,session) {
output$stuff = renderPlot({
hist(faithful$eruptions, probability = TRUE,
breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration",
col = "bisque", border = 1)
dens <- density(faithful$eruptions, adjust = input$bw_adjust, lwd = 2, col = "blue")
lines(dens, col = "blue")
})
})
```
我遇到的问题是默认行为是在代码结果之前回显代码块,这与我想要的相反。
我显然可以通过插入两个代码块来解决这个问题,其中第一个有块选项 echo=FALSE
,第二个有 echo=TRUE, fig.show='hide'
,但这需要我确保两个代码块匹配。 如何反转此顺序以在回显代码之前显示图表。
一如既往,感谢您的帮助。
对于演示文稿的正文,您应该能够按照自己的意愿进行操作。
## Slide with Interactive Plot
```{r thecode, echo=FALSE, warning=FALSE, message=FALSE}
shinyApp(options = list(width = "100%", height = "700px"),
ui = (fluidPage(inputPanel(
selectInput("n_breaks", label = h3("Number of bins:"),
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = h3("Bandwidth:"),
min = 0.2, max = 2, value = 1, step = 0.2)),
plotOutput("stuff", height = "650px"))),
server = function(input,output,session) {
output$stuff = renderPlot({
hist(faithful$eruptions, probability = TRUE,
breaks = as.numeric(input$n_breaks), xlab = "Duration (minutes)",
main = "Geyser eruption duration", col = "bisque", border = 1)
dens <- density(faithful$eruptions, adjust = input$bw_adjust,
lwd = 2, col = "blue")
lines(dens, col = "blue")})
})
```
```{r thecode, eval=FALSE}
```
即:
- 创建两个同名的代码块(此处
thecode
)。 - 在第一个代码块中,设置
echo = FALSE
这样代码就不会打印出来,但仍然会被计算。 - 在第二个代码块中,设置
echo = TRUE
,但保持代码块完全为空(栅栏之间也没有空行)。