RとTeXのいい関係

最近のマイブームはTeXです。たぶん[改訂第6版] LaTeX2ε美文書作成入門がでて,Texlive2013ベースで導入するようになり,導入の敷居が低くなった=プラットフォーム化がすすんだことが原因の一つなんだろうと思う。これでうちみたいな文系心理の学生にも紹介しやすくなったし。

ところで,昨日必要に迫られて(理由はこちら)psychパッケージのヘルプを読んでいたら,ずいぶんと便利な関数があることを知った。psychパッケージの結果をTeX出力してくれる関数群だ。結果の美しさに感動したので,ついでにRとTeXのつなぎ方について,わかったことを書いておく。ここで紹介するのは,

  1. RstudioのSweave機能
  2. xtablesパッケージ
  3. psychパッケージのいくつかの関数

です。

1.RstudioでSweaveする

これはRStudioで新規Sweaveファイルを開くだけの簡単な方法。documentclassから始まり,\end{document}で終るファイルが開かれる。Rの式や関数を<<>>==から@の中に記載し,Compile PDFボタンを押すだけ。Rに入力したコードも表示させたかったら,echo=TRUEのオプションを着けておく。プロット等の図版が欲しい場合は同様に,fig=TRUEのオプションも書いておく。

結果はこちらにあるとおり。図のファイルは自動的にPDFファイルを作ってくれたりするから大変便利。

ただし,日本語入力等には対応していないし,時々うまく行かないこともあるから,自分でソースを見て修正をかけたほうが良いかも。その場合は,コンソールで

とし,texファイルを出力させる。直すべきところとして,

  • スタイルファイル,Sweaveとaeをとってくる必要がある。こちらのサイトを参照。
  • documentclassを{jsarticle}に。なんなら[uplatex]で。
  • usepackage{graphicx}を追加。
  • PDFをincludegraphicsするときにはBounding Boxが必要。

このへんで対応できるかなと。

ところで,コンパイルはuplatexで,というのがこれからのスタンダードのようだし,いろいろエラーがでたり書き直すのも面倒,ということもあるでしょう。自分のTeX書式テンプレートを用意しておいて,そこにRの結果等を書き込みたいな,と言う場合には次の2.や3.の方法を使いましょう。

2.xtableパッケージのxtable関数

これはもうそのまま,次のコードを走らせればすぐにわかる。

プロンプトにTeXのコードがでてきたと思うので,それを自分のTeXテンプレートに書けばOKなわけだ。xable関数は色々な書式に対応したテーブルを書き出してくれる。

3.psychパッケージの様々な関数

これが本題。psychパッケージの中に入っているいくつかの関数で,自動的に表を出力してくれるのがありがたい。関数はそれぞれ次の通り。

  • df2latex…データフレームをTeXにしてくれる
  • cor2latex…相関行列をTeXにしてくれる
  • fa2latex…因子分析の結果をTeXにしてくれる
  • omega2latex…信頼性係数ωの情報をTeXにしてくれる
  • irt2latex…項目反応理論の結果をTeXにしてくれる
  • ICC2latex…ICCの情報をTeXにしてくれる

ソースコードは次のような感じ。上のxtableパッケージの結果と合わせてコンパイルしたtexソースPDFも資料として上げておきます。

ちなみにTeXとは関係ないけど,psychパッケージは因子分析の図を書いてくれるfa.diagram関数や,fa.plot関数ってのもあるから面白いねえ。アップデートもしっかりあるし,今後も展開に期待したいパッケージの一つです。

追記 Texlive2013にはXeLaTeXというUTF-8対応のtexがあるので,これを使えばRstudioのSweaveからも日本語でコンパイルできるよ,との情報をいただきました。ありがとうございました。

コメントは受け付けていません。