{pacman}の活用
R のパッケージ管理ツールの一つに{pacman}パッケージ((UMIN に wordpress でホームページを立ち上げる(3)MySQL の初期設定. 基礎医学教育研究会ノート. Accessed February 21, 2021. https://plaza.umin.ac.jp/kikkenlab/note/umin-wordpress-03/))というものがあります。 install.pakeges() や library() を羅列することなく、pacman::p_load() の一行でスマートに記載することができます。
主な使い方はこちら((pacman でパッケージのインストール・ロードを簡単にする. Published December 15, 2018. Accessed February 21, 2021. https://blog.atusy.net/2018/12/15/pacman/))とこちら((“install.packages()”するのはこれが最後!Rのパッケージ管理には「pacman」を使おう. Qiita. Accessed February 21, 2021. https://qiita.com/taiyodayo/items/e69d997754d55e3d7e4c))の記事が参考になります。
誰かにスクリプトを共有する際は、{pacman}が入っていない場合もあります。その点を加味して、下記のように記載します。
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, magrittr, package_n)
Code language: PHP (php)
この pacman::p_load() と コメント # の書き方、私もよく使います。各パッケージ名の隣に # で説明のコメントを書くことができるのでおすすめです。 https://t.co/mTbDVGb5eM {pacman}については、よければこちらをご参照ください https://t.co/wi8V16Fo9U pic.twitter.com/VU3cTUhqTt
— Shoei (@shoei05) May 11, 2021
環境の初期化とメモリ領域の解放
もう一点、新しくスクリプトを実行する際に、前の結果が残っていると、エラーに気づかなかったり、誤計算のもとになります。そのため、環境の初期化 rm(list=ls()) と、ガベージコレクション(不要になっているメモリ領域を解放)gc() を行います。
コードはこちら((2020年版 Rによるデータ分析メモ. Qiita. Accessed February 21, 2021. https://qiita.com/gnbrganchan/items/f001007098d873e0b0ca))を参考にしました。
rm(list=ls())
gc(); gc();
Code language: PHP (php)
ガベージコレクションを2回する理由は、下記に説明がありました。
"gc()は二度続けて行なう方が良いそうである。理由はもっともで、直近の計算結果を保存する .Last.value というオブジェクトが気づかぬままに巨大になっていることがあるが、一度目のgc()でこれが消え、二度目のgc()実行で解放されたメモリーが整頓される、からだそうです。" https://t.co/MQxxY05hos
— Shoei (@shoei05) October 18, 2020
冒頭コードのまとめ
- {pacman} の利用
- 環境の初期化とメモリ領域の解放
これらを合わせて、私は各スクリプトの冒頭には下記のように記載をしています。
rm(list=ls()); gc(); gc();
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, magrittr, package_n)
Code language: PHP (php)
私は 複合代入演算子 %<>% も使うことが多いため、tidyverseとmagrittrは別に読み込むようにしています。また、Rstudioは、PCの環境に依存しないDocker上で構築することをおすすめします。こちらの記事もご参照ください。
Docker環境 Rstudio で文字化け回避、Host/Container間のファイルシステムの共有に関する覚書
ピンバック: RstudioをGithubとプロジェクトで管理する - shoei05
ピンバック: よく使うR小技集(随時更新) - shoei05
ピンバック: Docker で Rstudio ver 1.4 をインストールする - shoei05