{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)
環境の初期化とメモリ領域の解放
もう一点、新しくスクリプトを実行する際に、前の結果が残っていると、エラーに気づかなかったり、誤計算のもとになります。そのため、環境の初期化 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回する理由は、下記に説明がありました。
冒頭コードのまとめ
- {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上で構築することをおすすめします。こちらの記事もご参照ください。
ピンバック: RstudioをGithubとプロジェクトで管理する - shoei05
ピンバック: よく使うR小技集(随時更新) - shoei05
ピンバック: Docker で Rstudio ver 1.4 をインストールする - shoei05