- 20091222の日記にコメントをいただきました(こちら)。Sweaveを使ったRの記録作りのことです。
- Rを立ち上げます(WindowsXPで使っています)
- 「今日の作業」をします
- 作業ディレクトリが"C:\Documents and Settings\MyName\My Documents\RDiary\rd20100106"とします。
- Rのツールバー「ファイル」から、「ディレクトリの変更」を選んで、このディレクトリを指定します。
- 今日、R作業で使う入力ファイルなどは、みなここに納めることにします。
- たとえば、ここに"rand.txt"というファイルがあるとします。これを読み込んでソートしてプロットするのが今日の作業とします。
- コマンドは以下の通りです。
data<-read.table("rand.txt")
sort(data$V1)
plot(sort(data$V1))
q()
-
- 作業スペースの保存をするかどうかを尋ねてくるので、「はい」を選んで、終了です。
- 「日記化の作業」をします
- "C:\Documents and Settings\MyName\My Documents\RDiary\rd20100106"以下に、".Rdata"ファイルと".Rhistory"ファイルが出来上がります。
- ".Rhistory"のファイルをテキストエディタで開きます。
- 以前のコマンド履歴などが前半に乗っているかもしれませんが、「今日の作業」は末尾にあります。その部分の"q()"以外をコピーします
- それを、RのSweave関数用のファイルのヘッダとフッタの間にペーストします。
\documentclass{article}
\usepackage{ascmac}
\begin{document}
<<fig=TRUE>>=
###############
#ここがRコマンド用のスペース
###############
@
\end{document}
-
- "rd20100106.Rnw"とでも言う名前のテキストファイルで保存しましょう".Rnw"は「Rのnowebファイル」という意味(らしい)です。
- "rd20100106.Rnw"はこんな感じです
\documentclass{article}
\usepackage{ascmac}
\begin{document}
<<fig=TRUE>>=
data<-read.table("rand.txt")
sort(data$V1)
plot(sort(data$V1))
@
\end{document}
-
- もう一度、Rを立ち上げます。
- 次のようなコマンドを打ちます。
Sweave("rd20100106.Rnw")
Writing to file rd20100106.tex
Processing code chunks ...
1 : echo term verbatim eps pdf
'rd20100106.tex' に対して LaTeX を実行できます
-
- 作業ディレクトリに"rd20100106.tex"というファイルが出来ていて、さらに、プロットした図がepsとpdfで出来ています。
- texファイルはこんな中味です。
\documentclass{article}
\usepackage{ascmac}
\usepackage{Sweave}
\begin{document}
\begin{Schunk}
\begin{Sinput}
> data <- read.table("rand.txt")
> sort(data$V1)
\end{Sinput}
\begin{Soutput}
[1] 0.002693342 0.012488929 0.041386788 0.241740035 0.246591925 0.256697358
[7] 0.281551616 0.325136101 0.364985520 0.365066691 0.387413637 0.424479478
[13] 0.479367090 0.491357962 0.646474201 0.694218310 0.744544563 0.793634612
[19] 0.833630678 0.873841437
\end{Soutput}
\begin{Sinput}
> plot(sort(data$V1))
\end{Sinput}
\end{Schunk}
\includegraphics{rd20100106-001}
\end{document}
-
- てふの動く環境でしょうか?だったら、このtexファイルをてふエディタなどで開いて、dviファイルにしたり、全体でpdfファイルにしたりしましょう。
- ただし、少なくとも、2つの.styファイルが必要なようです。"Sweave.sty"と"ae.sty"です。
- 利用中のてふ環境のsty置き場(私の場合はここ。。。"C:\tex\share\texmf\ptex\platex\base")か、ローカルディレクトリに置くとして。
- 「今日の入力ファイル」とその「コマンドと図など」を取りまとめた諸ファイル一式が出来上がりました。出来たpdfは掲載図のようなもの
- さらに、次のようなコマンドを発行すると
Stangle("rd20100106.Rnw")
-
- 次のようなメッセージが出て、コマンド部分だけが、"rd20100106.R"というファイルに書き出されます。
Writing to file rd20100106.R
###################################################
### chunk number 1:
###################################################
data<-read.table("rand.txt")
sort(data$V1)
plot(sort(data$V1))
- Rのコマンド以外を入れたいとき
- 日記がRコマンドだけで済むわけもないので、それ以外のコメントを入れましょう。
\documentclass{article}
\usepackage{ascmac}
\begin{document}
ここにコメント
<<fig=TRUE>>=
data<-read.table("rand.txt")
sort(data$V1)
plot(sort(data$V1))
@
ここにもコメント
<<fig=TRUE>>=
data<-read.table("rand.txt")
sort(data$V1)
plot(sort(data$V1))
@
ここにもコメント
\end{document}