これについてはすでにいくつかの質問がありますが、それらは不明確であるか、おそらく時代遅れであるために機能しない解決策を提供しています。
- 適切な R マークダウン コード構成
- `source('myfile.r')` のように R Markdown ファイルをソースする方法は?
- http://yihui.name/knitr/demo/externalization/
大規模プロジェクト向けのモジュール化されたコード構造
R Markdown/Notebook は優れていますが、その表示方法では、通常、すべてのテキストとすべてのコード チャンクを含む 1 つのファイルがあります。このような単一のファイル構造が適切な設定ではないプロジェクトがよくあります。代わりに、他のファイルを順番にロードする単一の.R
マスター ファイルを使用します。.R
R Notebook を使用してこの構造を複製したいと思います。つまり、複数のファイルから.Rmd
コードを呼び出す単一のファイルがあるようにします。.R
この方法でプロジェクトを操作することの良い点は、.R
ファイルを使用して RStudio を使用した通常のワークフローがうまくいくだけでなく、コードを複製することなく R Notebook/Markdown からのきちんとした出力が可能になることです。
最小限の例
これは、例をできるだけ小さくするために単純化されています。2 つの.R
ファイルと 1 つのマスター.Rmd
ファイル。
start.R
# libs --------------------------------------------------------------------
library(pacman)
p_load(dplyr, ggplot2)
#normally load a lot of packages here
# data --------------------------------------------------------------------
d = iris
#use iris for example, but normally would load data from file
# data manipulation tasks -------------------------------------------------
#some code here to extract useful info from the data
setosa = dplyr::filter(d, Species == "setosa")
plot.R
#setosa only
ggplot(setosa, aes(Sepal.Length)) +
geom_density()
#all together
ggplot(d, aes(Sepal.Length, color = Species)) +
geom_density()
次に、ノートブック ファイル:
notebook.Rmd
:
---
title: "R Notebook"
output:
html_document: default
html_notebook: default
---
First we load some packages and data and do slight transformation:
```{r start}
#a command here to load the code from start.R and display it
```
```{r plot}
#a command here to load the code from plot.R and display it
```
望ましい出力
望ましい出力は、 のコード チャンクstart.R
との間でコードを手動でコピーすることで得られるものです。これは次のようになります (画面スペースが不足しているため一部が欠落しています)。plot.R
notebook.Rmd
私が試したこと
source
これにより、コードが読み込まれますが、表示されません。source
次のコマンドを表示するだけです。
knitr::read_chunk
このコマンドはここで言及されていましたが、実際には、source
私が知る限り同じことを行います。コードをロードしますが、何も表示しません。
目的の出力を得るにはどうすればよいですか?