見出し画像

R, LaTeX環境構築に関する私の結論

一般に、統計解析うんぬんを触れようとした人にとってR, Python, LaTeXの環境を手に入れることは必要不可欠である。どれもクラウドベースでの実行環境が無料で利用できるが、カスタマイズ性や処理性能に難があり、できることならば個人のマシンに環境を構築しておくことが望ましい。

ところが、一概に環境構築といっても様々なものがあり、デファクトスタンダードのようなものは存在しない。なぜなら、ユーザーの利用実態・マシンスペックによって最適な環境が異なるからである。

本記事では、そうした状況の中でR, LaTeXの環境構築を試みた私が私なりの「結論構築」にいたるまでの紆余曲折を記録しておくものである。


スペック

  • Windows 11 Home (version 22H2) x64

  • RAM: 8GB

実現したい環境

  • 長時間の計算はしない

  • 複数人で作業する機会は限られる

  • 自分の過去のコードは再現可能にしておきたい

  • LaTeXでのPDF組版が必須

  • ローカルが汚れる分には許容できる


試みたこと

RStudio + TeX Liveを完全ローカルで運用

先代マシンでの運用。当時はそれが当たり前だと考えていたが、今考えれば非効率な点がいくつもあった。

  • (R)複製することによってブランチを切っていた(笑)ので、version1-2とversion2-1がどちらも別仕様で最新版といった事態が散見

  • (R)Rprojectによる一元管理のためにcsvファイル本体をワーキングディレクトリに配置していた。クラウドで管理できないのでデータセットを出先で閲覧したり外部に共有したりできない

  • (LaTeX)プリアンブルがファイルごとにアップデートしていくため、逐一最新のファイルを辿ってコピペしていた

PC交換を機に、もう少し効率的な実行環境を得られないのかと考え、試行錯誤することになる。

R + Dockerによる環境構築

引用先の記事にあるような環境を構築しようとした。大学Gmailを利用して再現することはできたものの、運用してみてDockerを用いる必要はないことがわかった。理由としては以下。

  • 仮想化するにはスペックが不足している

  • ローカルが汚れることについては許容できる

    • ニッチなパッケージ(モジュール)を使わないので、コンフリクトの心配がない

    • Git管理さえすればバージョン管理は可能

    • 現在使用していないdvcだが、ローカル上で運用しても支障はない

  • パッケージやデータセットを追加するたびにビルドする手間が無駄

    • texlive-fullの場合、ビルドに6時間くらいかかる

    • Rocker/verse + TinyTeXを使用しても、1時間くらいかかる

  • 計算能力が落ちる

  • 指導教員が(恐らく)仮想環境で作業していない

    • レビューを受ける際にコンテナを共有しても困惑される可能性

そのため、ローカル上で実行しGitないしdvcでバージョン管理することが最も望ましいという結論に至った。


現在の運用

次の概念図のような運用を行っている:

個人でRを使用する場合
共同でRを使用する場合

個人で作業する場合には、コード他はGitHub上で管理し、データセットはGoogle Driveで管理する。データセットは.Rprojが存在するディレクトリ(ワーキングディレクトリ)に配置してもよいし、googledriveパッケージを用いてGoogle Driveからマウントしてもよい。

複数人で作業する場合には、Google Drive上のデータセットをdvcで管理する。データセット以外を.dvcignoreに追加し、.dvcをワーキングディレクトリに含めておくことで、git pull & dvc pullで共同作業者の元に環境を再現できる。パッケージ管理はpackratパッケージが記録しており、packrat::restoreから再現できる。

分析結果をコピペ汚染を恐れずにレポートに起こしたい場合は、Rmd上で自由にRやTeXを用いて記述し、LaTeXを用いてPDFに組版することができる。Markdown記法では不可能だったきめ細やかな余白設定や美しい数式記述ができる点が魅力的だが、一方でコードチャンクを用いて平文とコードを区別する記法はLaTeXに慣れ親しんだ身としては扱いづらい。実装の詳細は土井先生のGitHub Pagesを参照いただきたい。

変更が起こりうる分析結果を載せているドキュメント以外はVSCodeやOverleafを用いて引き続きLaTeXのみで作成していく方針だ。


まとめ

本記事ではR, LaTeXの環境構築にあたっての試行錯誤を記した。環境構築を面倒がるあまりLaTeXはしばらくOverleafに依拠していた。UIにも慣れてきて使い勝手の良さを感じ始めてきたばかりだったので若干の寂しさがあるが、Rからシームレスに分析結果をアウトプットできる利点は無視できず、重い腰を上げて構築に踏み切った次第である。

今までとは異なり、今後は卒論・修論を中心に本番のデータに触れる機会が多くなってくることが予想される。分析の前に基盤うんぬんで手間取られることのないよう、今のうちにこの環境に慣れておきたい。

この記事が気に入ったらサポートをしてみませんか?