日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

Sweave関数について少し...

R Advent Calenderwakutekaさんにコメントさせていただいたところ、ご返事をいただけました。
ありがとうございます。ネットで意見交換することになれていないので、ちょっと嬉しかったりして...

で、Sweave関数について、少し書こうと思いました。
解析結果をSweave関数でまとめていた頃、

  • 複数のグラフを並べて吐き出した〜い
  • だらだら長い表を複数のページにまたいで出力した〜い

といった衝動にかられたことがありました。
私はLaTexなどの知識は持ち合わせず、手元にあるのは借りっぱなしになった知人の本、一冊。

LATEX2ε美文書作成入門

LATEX2ε美文書作成入門

で、ネットで調べて、Sweave関数でも使えるように、こんなものをしたためておりました。

  • 複数の画像をminipage環境で横に並べる
> # グラフをminipage環境を使って2つ並べる場合
> fnum <- "figure"
> count <- 1
> for(i in 1:10){
+ fname <- paste(fnum, i, "ps", sep=".")
+ postscript(file=fname, horizontal=FALSE, width=8, height=8)
+ (ここにグラフのスクリプトを入れる)
+ dev.off()
+ k <- paste("\\includegraphics[width=9cm, clip]{", fname, "}", sep="")
+ if(count%%2==1) cat("\\begin{tabular}{cc}\n\n")
+ cat("\\begin{minipage}{.5\\hsize}\n\n\\begin{center}\n\n")
+ cat("k, "\\par\n\n")
> cat("\\end{center}\n\n\\end{minipage}\n\n")
> if(count%%2==0) cat("\\end{tabular}\n\n \\par\\vspace{5mm}\n\n\\par")
> count <- count + 1
> }
> if(count%%2!=1) cat("\\end{tabular}\n\n\\par\\vspace{5mm}\n\n \\par")

なんてコードを書いていました。

最近、Sweave関数もLaTexも使って無いので、動かないかもしれませんが…