R Language
LaTeXのR with knitr
サーチ…
構文
- <<内部コードチャンク名、オプション... >> =
#Rコードここ
@ - \ Sexpr {ここで#Rコード}
- <<外部読み込み-Rファイル>> =
read_chunk( 'r-file.R')
@
<<外部コードチャンク名、オプション... >> =
@
パラメーター
オプション | 詳細 |
---|---|
エコー | (TRUE / FALSE) - Rソースコードを出力ファイルに含めるかどうか |
メッセージ | (TRUE / FALSE) - Rソースの実行からのメッセージを出力ファイルに含めるかどうか |
警告 | (TRUE / FALSE) - Rソースの実行からの警告を出力ファイルに含めるかどうか |
エラー | (TRUE / FALSE) - Rソースの実行からのエラーを出力ファイルに含めるかどうか |
キャッシュ | (TRUE / FALSE) - Rソースの実行結果をキャッシュするかどうか |
fig.width | (数値) - Rソースの実行によって生成されたプロットの幅 |
fig.height | (数値) - Rソースの実行によって生成されたプロットの高さ |
備考
Knitrは自然言語(LaTeX形式)とソースコード(R形式)を織り交ぜるためのツールです。一般的に、自然言語とソースコードが散在しているという概念は、 識字プログラミングと呼ばれています 。 knitrファイルにはLaTeX(伝統的に.texファイルに格納されている)とR(伝統的に.Rファイルに格納されている)が混在しているため、R noweb(.Rnw)という新しいファイル拡張子が必要です。 .RnwファイルにはLaTeXとRコードが混在しています。
Knitrは、PDF形式の統計レポートの作成を可能にし、 再現性のある研究を達成するための重要なツールです。
.RnwファイルをPDFにコンパイルすることは、2つのステップのプロセスです。まず、Rコードをどのように実行し、LaTeXコンパイラが理解できる形式(「ニッティング」と呼ばれるプロセス)で出力をキャプチャするかを知る必要があります。これはknitrパッケージを使って行います。あなたがknitrパッケージをインストールしたと仮定して、このコマンドを以下に示します :
Rscript -e "library(knitr); knit('r-noweb-file.Rnw')
これにより、通常の.texファイル(この例ではr-noweb.texと呼ばれます)が生成されます。このファイルは、以下を使用してPDFファイルに変換できます。
pdflatex r-noweb-file.tex
ラテックスでのニットとコードの外部化によるR
Knitrは、RコードとLaTeXコードの混在を可能にするRパッケージです。これを実現する1つの方法は、外部コードチャンクです。外部コードチャンクを使用すると、R開発環境でRスクリプトを開発/テストし、その結果をレポートに含めることができます。これは強力な組織手法です。このアプローチを以下に示します。
# r-noweb-file.Rnw
\documentclass{article}
<<echo=FALSE,cache=FALSE>>=
knitr::opts_chunk$set(echo=FALSE, cache=TRUE)
knitr::read_chunk('r-file.R')
@
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
One we have called the read\_chunk command above we can reference sections of code in the r-file.R script.
<<Chunk1>>=
@
\end{document}
このアプローチを使用するときは、以下に示すようにコードを別のRファイルに保存します。
## r-file.R
## note the specific comment style of a single pound sign followed by four dashes
# ---- Chunk1 ----
print("This is R Code in an external file")
x <- seq(1:10)
y <- rev(seq(1:10))
plot(x,y)
ラテックスのKnitrとインラインコードチャンクのR
Knitrは、RコードとLaTeXコードの混在を可能にするRパッケージです。これを実現する1つの方法は、インラインコードチャンクです。このapporachは下記のとおりです。
# r-noweb-file.Rnw
\documentclass{article}
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
<<my-label>>=
print("This is an R Code Chunk")
x <- seq(1:10)
@
Above is an internal code chunk.
We can access data created in any code chunk inline with our LaTeX code like this.
The length of array x is \Sexpr{length(x)}.
\end{document}
Knitrと内部コードチャンクを持つLaTexのR
Knitrは、RコードとLaTeXコードの混在を可能にするRパッケージです。これを実現する1つの方法は、内部コードチャンクです。このapporachは下記のとおりです。
# r-noweb-file.Rnw
\documentclass{article}
\begin{document}
This is an Rnw file (R noweb). It contains a combination of LateX and R.
<<code-chunk-label>>=
print("This is an R Code Chunk")
x <- seq(1:10)
y <- seq(1:10)
plot(x,y) # Brownian motion
@
\end{document}