5 推奨パッケージ

この章では、一般的な疫学業務に役立つ R パッケージをいくつか紹介します。以下のコードをコピーし実行すると、コード内に含まれているパッケージすべてが CRAN からインストールされ、現在使用中の R セッションで使用するために読み込まれます。 すでにパッケージがインストールされている場合は、パッケージの読み込みのみ行われます。

以下のコード内に不要なパッケージがある場合は、#記号をパッケージ名の前につけることで、そのパッケージを除外することができます。

注意点:

  • 以下のコードを実行する前に、まず pacman パッケージのインストールが必要です。install.packages("pacman") を実行し、インストールしてください。このハンドブックでは pacman パッケージの p_load() を主に使用しています。p_load() は、必要に応じてパッケージをインストールし、現在の R セッションで使用するためにパッケージを読み込む関数です。また、すでにインストール済みのパッケージは、R の base パッケージの library() で読み込むこともできます。
  • 以下のコードでは、他のパッケージに含まれているパッケージは、インデントとハッシュで表示されています。例えば、ggplot2 パッケージは tidyverse パッケージの下に記載されています。
  • 同じ名前の関数が複数のパッケージに存在している場合、直前に呼び出されたパッケージの関数が優先されることでマスキングが発生することがあります。詳しくは R の基礎 の章をご覧ください。このようなパッケージの対立による問題を管理するために、conflicted パッケージの使用をおすすめします。
  • pacman パッケージやマスキングについての詳しい情報は R の基礎 の 3.7 Packages のセクションをご覧ください。

このハンドブックを制作する際に使用された R、RStudio、R パッケージのバージョンは、 編集前記・技術注記 の章に記載されています。

5.1 CRAN のパッケージ

##########################################
# 疫学業務に役立つRパッケージの一覧      #
##########################################

# 本スクリプトは pacman R パッケージの p_load() を使用する。
# p_load() は、まだインストールされていないパッケージをインストール・読み込み、すでにインストールされているパッケージは読み込みのみ行われる。


# pacman パッケージがインストールされていることを確認する
if (!require("pacman")) install.packages("pacman")


# CRAN から入手可能なパッケージ
##############################
pacman::p_load(
     
     # Rを学ぶ
     ############
     learnr,   # R Studio チュートリアル画面でRをインタラクティブに学ぶ
     swirl,    # Rコンソールでインタラクティブに学ぶ
        
     # プロジェクトとファイルの管理
     #############################
     here,     # Rのプロジェクトフォルダを基準とするファイルパス
     rio,      # 様々なタイプのデータのインポート・エクスポート
     openxlsx, # 複数のシートを有するExcelファイルのインポート・エクスポート 
     
     # パッケージのインストールと管理
     ################################
     pacman,   # パッケージのインストール・読み込み
     renv,     # グループで作業する際のパッケージのバージョン管理
     remotes,  # githubからのインストール
     
     # 一般的なデータ管理
     #########################
     tidyverse,    # データを整理して表示するための多くのパッケージが含まれる
          #dplyr,      # データ管理
          #tidyr,      # データ管理
          #ggplot2,    # データのグラフ化
          #stringr,    # 文字列や文字の操作
          #forcats,    # 因子を扱う 
          #lubridate,  # 日付を扱う
          #purrr       # 反復処理とリストの操作
     linelist,     # ラインリストの整理
     naniar,       # 欠損値の評価
     
     # 統計  
     ############
     janitor,      # 表とデータの整理
     gtsummary,    # 記述的および統計的表の作成
     rstatix,      # 統計的検定と要約の実行
     broom,        # 回帰結果の整理
     lmtest,       # 尤度比検定
     easystats,
          # parameters, # 回帰結果整理のための代替パッケージ
          # see,        # フォレストプロット作成のための代替パッケージ
     
     # 疫学モデリング
     ###################
     epicontacts,  # 伝播ネットワークの分析
     EpiNow2,      # Rtの推定
     EpiEstim,     # Rtの推定
     projections,  # 発生率の予測
     incidence2,   # 流行曲線(エピカーブ)の作成と発生データの処理
     i2extras,     # incident2パッケージの追加関数
     epitrix,      # 有用な疫学関数
     distcrete,    # 離散遅延分布
     
     
     # 図 - 一般
     #################
     #ggplot2,         # tidyverseパッケージに含まれる
     cowplot,          # 図を組み合わせる  
     # patchwork,      # 図を組み合わせる (代替パッケージ)     
     RColorBrewer,     # カラースケール
     ggnewscale,       # 配色レイヤーの追加

     
     # 図 - 特定のタイプ
     ########################
     DiagrammeR,       # DOT言語を使用した図
     incidence2,       # 流行曲線(エピカーブ)
     gghighlight,      # データの一部をハイライトする
     ggrepel,          # ラベルの重なりを防ぐ
     plotly,           # インタラクティブな図を作成する
     gganimate,        # アニメーションを作成する

     
     # 地理情報システム(GIS)
     ######
     sf,               # SimpleFeature形式を使用して空間データを管理する
     tmap,             # シンプルな地図の作成(動的・静的地図の両方で機能)
     OpenStreetMap,    # ggplotマップにOSMベースマップを追加する
     spdep,            # 空間統計 
     
     # 文書の作成
     #################
     rmarkdown,        # PDF、Word文書、パワーポイント、およびHTMLファイルの作成
     reportfactory,    # Rマークダウンアウトプットの自動整理
     officer,          # パワーポイント
     
     # ダッシュボード
     ############
     flexdashboard,    # Rマークダウンスクリプトをダッシュボードに変換する
     shiny,            # インタラクティブなウェブアプリ
     
     # プレゼンテーション用の表の作成
     #########################
     knitr,            # RマークダウンレポートとHTML表の作成
     flextable,        # HTML 表
     #DT,              # HTML 表 (代替パッケージ)
     #gt,              # HTML 表 (代替パッケージ)
     #huxtable,        # HTML 表 (代替パッケージ) 
     
     # 系統学
     ###############
     ggtree,           # 系統樹の作成とアノテーション
     ape,              # 系統発生と進化の分析
     treeio            # 系統発生ファイルの描画
 
)

5.2 Github のパッケージ

以下は、2つのパッケージを Github リポジトリから直接インストールするためのコードです。

  • epicontacts パッケージの開発バージョンには、時間軸 x に沿った伝播状況を表す図(伝播ツリー)を作成する関数が含まれています。
  • epirhandbook パッケージには、このハンドブックで使用されているすべてのデータが含まれており、ハンドブックのオフラインバージョンをダウンロードするために使用できます。
# Githubからダウンロードするパッケージ(CRANからはダウンロード不可)
##########################################################

# epicontacts の開発バージョン(時間軸xの伝播チェーン)
pacman::p_install_gh("reconhub/epicontacts@timeline")

# このハンドブックで使用されるデータが含まれるパッケージ 
pacman::p_install_gh("appliedepi/epirhandbook")