- Sweave()とRnwファイル
- Sweave()はhoge.Rnwという拡張子のファイルを読み込んでhoge.texというファイルを出力する
- オオマカニはtex文書であって、Rのソースを書きこみ、そのソースを実行した結果をプロット画像をtexの中に埋め込んでくれる仕組み
- Sweave()を使ったtex文書は、Tex文書のスタイルの一つなので、styファイルが必要
- Sweave.styとae.styの2つ
- それぞれを「texの作業フォルダ」に「じかおき」する(初心者なので失敗しないため。作業場所を引っ越すときは、一緒にお引っ越し)
- これ(Sweave,sty)とこれ(ae.sty)をコピーして、それぞれテキストファイルとして保存する(名前は"Sweave.sty","ae.sty")
- Sweave()関数を使ってみる
- ただのtexファイルをRのSweave()関数に処理させることもできる
- 前の記事のtest.texを拡張子だけつけかえた"testSw.Rnw"としてみよう("test.Rnw"のままだと、Sweave()関数が"test.tex"を作ろうとしてバッティングするので名前をいじっただけ)
- もちろんRの作業ディレクトリは、texファイル、Rnwファイル、styファイルのあるディレクトリにしておく
- encoding対策としてSweave()関数の引数に注意
Sweave("testSw.Rnw",encoding="SJIS")
-
- testSw.RnwとそれからできたtestSw.texとを以下に示す。1(2)カ所違う。
- 1箇所目はtestSw.texの20行目に入った"\usepackage{Sweave}"の行
- 2箇所目は最後に改行が入って行数が増えたこと(これはもとのRnwファイルの最後が改行されていれば変わらなかったのだろう)
- このことからわかるように、Sweave()関数は、次の2つの仕事をする
- Rnwという拡張子だが、基本はtex形式のファイルに"Sweave"パッケージを使うよ、という宣言を書きこむ
- Rnwファイルに書かれたRのコードやその出力をしかるべきファイル名で作成しながら、texファイルに書き込んだり、ファイルの呼び込み行を書きこんだりする
- "testSw.Rnw"ファイル
\documentclass[11pt,a4paper]{jsarticle}
\usepackage{amsmath,amssymb}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{ascmac}
\setlength{\textwidth}{\fullwidth}
\setlength{\textheight}{39\baselineskip}
\addtolength{\textheight}{\topskip}
\setlength{\voffset}{-0.5in}
\setlength{\headsep}{0.3in}
\newcommand{\divergence}{\mathrm{div}\,}
\newcommand{\grad}{\mathrm{grad}\,}
\newcommand{\rot}{\mathrm{rot}\,}
\pagestyle{myheadings}
\markright{\footnotesize \sf 物理のかぎしっぽ \ \texttt{ http://www12.plala.or.jp/ksp/}}
\begin{document}
\section*{◆タイトル◆}
\end{document}
\documentclass[11pt,a4paper]{jsarticle}
\usepackage{amsmath,amssymb}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{ascmac}
\setlength{\textwidth}{\fullwidth}
\setlength{\textheight}{39\baselineskip}
\addtolength{\textheight}{\topskip}
\setlength{\voffset}{-0.5in}
\setlength{\headsep}{0.3in}
\newcommand{\divergence}{\mathrm{div}\,}
\newcommand{\grad}{\mathrm{grad}\,}
\newcommand{\rot}{\mathrm{rot}\,}
\pagestyle{myheadings}
\markright{\footnotesize \sf 物理のかぎしっぽ \ \texttt{ http://www12.plala.or.jp/ksp/}}
\usepackage{Sweave}
\begin{document}
\section*{◆タイトル◆}
\end{document}