2015-09-30 3 views
5

私は最近、RmarkdownでSlidyプレゼンテーションテンプレートを使用し始めました。また、各スライドでより多くのコンテンツをスクロールできるようにしました。Rmarkdownプレゼンテーション(コード)をエコーする前にチャンク出力を表示するにはどうすればいいですか?

私がこれを使用している方法の1つは、学生とプロットを共有することです(下記のサンプルコードを参照)。 1つのスライド上で、スクロールダウンすることで表示できるプロットを作成するために使用された正確なコードと共にプロットを表示することができます。

--- 
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") 
}) 
}) 
``` 

私が気にする問題は、コード結果の前にコードチャンクをエコーすることです。これは、私が望む方法とは逆です。

私は明らかに2つのコードチャンクを挿入することでこれを解決できます。最初にチャンクオプションecho=FALSEがあり、2番目にecho=TRUE, fig.show='hide'がありますが、これは両方のコードチャンクが一致するようにするためです。 コードをエコーする前にプロットを表示させるには、この順序を逆にすることはできますか?

いつものように、助けてくれてありがとうございます。

答えて

4

プレゼンテーションの本文については、次のようにすることができます。

## 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)と同じ名前を持つ2つのコードチャンクを作成します。
  • 最初のコードチャンクでは、echo = FALSEを設定して、コードが印刷されないようにしますが、それは評価されます。
  • 2番目のコードチャンクでは、echo = TRUEを設定しますが、チャンクは完全に空にします(フェンス間に空白行を入れないでください)。
+0

素晴らしい!私は、コードチャンクに割り当てられた名前がこのように使用できることを知らなかった。ご協力いただきありがとうございます! –

関連する問題