Sweave 関連サイト集

利用例

Makefileの準備

TEX = platex
R = R

.SUFFIXES:.Rnw

.tex.dvi:
        $(TEX) $<

.Rnw.tex:
        echo "options(width=80);Sweave(?"$<?")"| $(R) -q --no-save --no-restore

前部分の空白はタブであることに注意. .SUFFIXES:は便宜書き換えを行う必要があるやもしれない. Msys環境でも,コマンド(cmd.exe+nmake)でも多分使えると思われる

hoge.Rnwの準備

\documentclass[a4j]{jarticle}
\usepackage{graphicx}

\begin{document}

<<fig=TRUE,echo=FALSE,eps=TRUE,pdf=FALSE>>=
hist(runif(1000))
@

\end{document}

hoge.dviの生成

$ make hoge.dvi

Tips

グラフの幅の調整

\setkeys{Gin}{width=1.0?textwidth}

デフォルトは0.8

Rコードの色を変えたい

\documentclass[a4j]{jarticle}
\usepackage{graphicx}
\usepackage{color}

\begin{document}

\DefineVerbatimEnvironment{Sinput}{Verbatim}{formatcom={?color{blue}}}
\DefineVerbatimEnvironment{Soutput}{Verbatim}{formatcom={?color{red}}}

<<echo=TRUE>>=
runif(10)
@

\end{document}

xtableをminipageで使用する

  • print.xtableを使用する
    \documentclass[a4j]{jsarticle}
    \usepackage[dvipdfm]{graphicx}
    \title{Happy xtable}
    \date{}
    \begin{document}
    <<minipage,echo=T>>=
    library(xtable)
    set.seed(123)
    X<-array(runif(10*5),dim=c(10,5))
    @
    \begin{table}[ht] 
    \begin{minipage}{0.5\hsize}
    <<fig=F,echo=F,results=tex>>=
     print.xtable(xtable(X)[1:5,],floating=F)
    @ 
    \end{minipage}
    \begin{minipage}{0.5\hsize}
    <<fig=F,echo=F,results=tex>>=
     print.xtable(xtable(X)[6:10,],floating=F)
    @ 
    \end{minipage}
    \end{table}
    \end{document}\documentclass[a4j]{jsarticle}
    \usepackage[dvipdfm]{graphicx}
    \title{Happy xtable}
    \date{}
    \begin{document}
    <<minipage,echo=T>>=
    library(xtable)
    set.seed(123)
    X<-array(runif(10*5),dim=c(10,5))
    @
    \begin{table}[ht] 
    \begin{minipage}{0.5\hsize}
    <<fig=F,echo=F,results=tex>>=
     print.xtable(xtable(X)[1:5,],floating=F)
    @ 
    \end{minipage}
    \begin{minipage}{0.5\hsize}
    <<fig=F,echo=F,results=tex>>=
     print.xtable(xtable(X)[6:10,],floating=F)
    @ 
    \end{minipage}
    \end{table}
    \end{document}
  • xtableの出力を書き換える(sinkで出力するのがミソ)
    minipage.output <- function(x, y, output="ouput.tex", work="work")
    {
    	sub.func1 <- function(z)
    	{
    		sink(work)
    		print(xtable(z))
    		sink()
    		return(scan(work, what="", sep="\n"))
    	}
    	sub.func2 <- function(str1)
    	{
    		cat("\\begin{minipage}{0.5\\hsize}\n", file=fn)
    		cat(str1[4:(length(str1)-1)], sep="\n", file=fn)
    		cat("\\end{minipage}\n", file=fn)
    	}
    	# ここから開始
    	require(xtable)
    	fn <- file(output, open="w")
    	str1 <- sub.func1(x)
    	cat(str1[1:3], sep="\n", file=fn)
    	sub.func2(str1)
    	str2 <- sub.func1(y)
    	sub.func2(str2)
    	cat("\\end{table}\n", file=fn)
    }
    x <- data.frame(matrix(1:12, 2))
    y <- data.frame(matrix(51:62, 2))
    minipage.output(x, y)
    すると,こんなものができあがる。
    % latex table generated in R 2.3.1 by xtable 1.3-2 package
    % Fri Jun  9 11:52:40 2006
    \begin{table}[ht]
    \begin{minipage}{0.5\hsize}
    \begin{center}
    \begin{tabular}{rrrrrrr}
    \hline
     & X1 & X2 & X3 & X4 & X5 & X6 \\
    \hline
    1 & 1.00 & 3.00 & 5.00 & 7.00 & 9.00 & 11.00 \\
    2 & 2.00 & 4.00 & 6.00 & 8.00 & 10.00 & 12.00 \\
    \hline
    \end{tabular}
    \end{center}
    \end{minipage}
    \begin{minipage}{0.5\hsize}
    \begin{center}
    \begin{tabular}{rrrrrrr}
    \hline
     & X1 & X2 & X3 & X4 & X5 & X6 \\
    \hline
    1 & 51.00 & 53.00 & 55.00 & 57.00 & 59.00 & 61.00 \\
    2 & 52.00 & 54.00 & 56.00 & 58.00 & 60.00 & 62.00 \\
    \hline
    \end{tabular}
    \end{center}
    \end{minipage}
    \end{table}

Windows 7におけるSweaveの使用について

セットアップ

(1) TeX Liveをインストールする。

(2) 下記のフォルダ

C:\Program Files\R\R-3.2.0\share\texmf

の中身を

C:\texlive\texmf-local\tex

にコピーする。

(3) CTANからae.zipをダウンロードする。

http://www.ctan.org/tex-archive/fonts/ae/

(4) ae.zipの

tfm内のファイル -> C:\texlive\texmf-local\fonts\tfm\ae vf内のファイル -> C:\texlive\texmf-local\fonts\vf\ae

へそれぞれコピーする。

(5) mktexlsrを実行する。

Sweaveの実行

library(tools) Sweave("hoge.Rnw")

のようにR上で入力すると、texファイルが出力されます。

そこでtexでコンパイルしようとするとエラーが出てしまいます。

原因はこの行のパスが理解できないようなので、

\usepackage{C:/PROGRA~1/R/R-3.2.0/share/texmf/Sweave}

を、面倒ですが、

\usepackage{Sweave}

のように書き換えるとうまく動きました。


  • "PROGRA~1"が良くないのだと思います。C:/Rへのインストールをお勧めします。 -- 2007-09-11 (火) 07:11:01
  • SweaveTips?集のページにあるSweave関連サイトのJSweaveのリンク先を http://www.seinan-gu.ac.jp/~shito/jsweave に変更頂けますでしょうか? -- wshito? 2009-05-11 (月) 19:11:48
  • すみません.自分で更新できました.お騒がせしました. -- wshito? 2009-05-11 (月) 19:13:47
  • TeX Liveに実装されたSyncTeXサポートと、R-forgeのpatchDVIパッケージを使って、Meadow上のRnw⇔PDFの相互ジャンプができている方はいらっしゃいませんか?もしこれができたら、Sweaveが飛躍的に使いやすくなるのですが…。 -- 2009-08-03 (月) 18:36:46
  • R掲示板を参照


MacOS X の場合

pTeX における Sweave の使用

セットアップ

TeXは、MacPortsのものが簡単に思えます。 MacPorts?をdmgファイルからダウンロードすると、/opt/以下に基本的なツールがインストールされます。

環境変数PATH, MANPATHにMacPorts?のパスを追加して... (たとえば、下記2行を ~/.bash_profileに記入するなど)

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/man:$MANPATH

pTeX(UTF-8対応バージョン)をインストールします。

 $ sudo port install ptex +utf8 +nox11  

Sweave.sty等へのパスを、TEXINPUTSに追加します。環境変数を使ってもいいですが、TeXShopでの使用を考えるなら、/opt/local/share/texmf/web2c/texmf.cnf を変更したほうが便利でしょう。

/opt/local/share/texmf/web2c/texmf.cnf にある、以下の行を

TEXINPUTS.platex = $platex2e_inputs
TEXINPUTS.platex = $platex2e_inputs;/Library/Frameworks/R.framework/Resources/share/texmf//

に変更します。

これで、platexコマンドでSweave.styを使用したTeXソースをタイプセットすることが可能になるはずです。

  • TexShop? で Sweave

ここを参照。

UpTeX + TeXShop における Sweave の使用について

セットアップ

I. JIS X0212 Characters for pTeX から

  1. 「Drag & Drop UpTeX」をダウンロードする。
  2. ダブルクリックして解凍後「UpTeX.app」をアプリケーションフォルダへ移動する。
  3. TeXShop を起動する。
  4. Sweave.sty など,必要な style file などを /Application/UpTeX.app/teTeX/share/texmf/ptex/platex フォルダへ,コピーする(アプリケーションフォルダの UpTeX.app を,コマンドキーを押しながらクリックし,「パッケージの内容を表示」を選択し,順次パスをたどる)。

II. TeXShop (v 3.26) Release 11/05/2013 から

  1. [Lion] タグ の,「TeXShop Latest Version, requires Lion」をダウンロードして,TeXShop.app をアプリケーションフォルダへ移動する。
  2. TeXShop の環境設定

III. sweave.engine を書く

  1. オプションキーを押しながらメニューバーの「移動」をクリックし,ユーザディレクトリのライブラリを開く
  2. TeXShop/Engines に Sweave.engine ファイルを作る(以下からダウンロードし,TeXShop/Engines へコピー。ファイルアクセス権限は 766 にでも)
    fileSweave.engine

Sweaveの実行

I. .Rnw ファイルを書く

上述の Sweave.engine では,.Rnw のエンコーディングは euc-jp としている(したがって,TeXShop の環境設定もそれにあわせてある)。utf-8 を使う人はしかるべき箇所を変更のこと。
fileexample.Rnw

II. TeXShop で Sweave を選び「タイプセット」する

TeXShop.png
使用した Sweave.engine は,参照が不完全な場合には複数回自動的にタイプセットするように書かれている。つまり,LaTeX を単独で使用しているときのように,参照が完全になるまで手動で何回かタイプセットするというようなことは不要である。
仕上がり例 fileexample.pdf

III. tips

  1. bar.Rnw をクリックしても TeXShop で開かれない。
    対処法は,bar.Rnw の「情報を見る」で,「このアプリケーションで開く」として TeXShop を指定する。
    抜本的には,新規ファイルは TeXShop で作り,保存するときに「rnw で保存」を選ぶようにしておく。

patchDVI + Sweaveによる日本語処理

  • 2013年度のR研究集会で招聘したDuncan Murdoch先生が、uplatex + dvipdfmxを処理できるようにpatchDVIパッケージをアップデートしてくれました。WindowsおよびMacの双方に対応しています。詳細は、以下のページからどうぞ。

添付ファイル: fileexample.pdf 868件 [詳細] filepatchDVI.pdf 621件 [詳細] fileSweave.engine 609件 [詳細] fileTeXShop.png 668件 [詳細] fileJapanese.pdf 571件 [詳細] fileexample.Rnw 534件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1719d)