web-dev-qa-db-ja.com

外部Rスクリプトからのコードを含めて実行し、コードと出力の両方を表示します

.Rmdに外部Rスクリプトのコードを含め、同時にコードを実行し、コードを表示し、その結果を出力.HTMLファイルに表示することは可能ですか?たとえば、私が持っている場合

_x <- 1
y <- 3
z <- x + y
z
_

_external.R_で。出力ドキュメントでは、上記のコードとzの結果、つまり4を見たいと思います。基本的に、Rチャンクの上のものをコピー/貼り付けた場合に起こることと同等のものが必要です。だから欲しい

_```{r}
some.library::some.function("external.R")
```
_

と同等になる

_```{r}
x <- 1
y <- 3
z <- x + y
z
```
_

出力HTMLファイル。 knitr::read_chunk('external.R)や_source('external.R_) `のようなものを試しましたが、これらはコードを表示しません。シンプルなものが欠けていますか?


[〜#〜] edit [〜#〜]

source('external.R', echo = TRUE)が要求したものを生成することがわかりましたが、出力に表示されるコード/結果の各行の先頭に_##_が追加されます。コードが.Rmdのチャンクに単純にコピー/ペーストされた場合のように見えるようにする方法はありますか?

17
haff

受け入れられた答え はシンプルで実用的なソリューションを提供しますが、これを行う最も慣用的な方法は(外部スクリプトをまったく修正する必要なしに) チャンクオプションcodeexternal.Rの内容をチャンクコードとして設定するには:

```{r, code = readLines("external.R")}
```
13
CL.

それを行う別の方法があり、マークダウンファイルにコードがあるようにexactlyに見えます。

きみの external.Rファイル:

## @knitr answer
x <- 1
y <- 3
z <- x + y
z

Rmarkdownファイル:

---
title: "Untitled"
output: html_document
---

```{r echo=FALSE}
knitr::read_chunk('external.R')
```

```{r}
<<answer>>
```

生成されるもの: enter image description here

9
spadarian

コードチャンクオプションでcomment = NAを設定できます。

例:

---
title: "Untitled"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(
    echo = TRUE,
    comment=NA)
```

## Example

```{r}
source("example.R", echo = T, Prompt.echo = "", spaced = F)
```

これにより

enter image description here

7
Maurits Evers