私はたくさんのサブパーツを持つかなり大きな研究プロジェクトに取り組んできました。私は各サブパーツごとにR
スクリプトを作成していますので、1つのスクリプトで失われることはありません。Rにあまりにも多くのライブラリをロードすることの欠点は何ですか?
私の質問は、このような大きなプロジェクトでのライブラリの読み込みに関するベストプラクティスですか?
ここで私は何ですか:各サブパートの先頭に特定のライブラリを呼び出すのではなく、プロジェクト全体に必要なすべてのライブラリを読み込む別のスクリプトを作成しました。各部分の始まり。
場合によっては、私は、例えばggplot2
や他のいくつかのライブラリのような、必要のないプロジェクトのサブ部分を作業していることがあります。 R
に多くの図書館を載せることの欠点は、必ずしもその瞬間を使用していないということですか?
ここには、私のLoadPackages.R
スクリプトの小さなサンプルがあります。私はすべてのライブラリをロードし、各作業セッションの開始時に
# List of packages to install
list.of.packages <- c("sp", "rgeos", "ggplot2", "data.table", "rgdal", "dplyr",
"magrittr", "spatialEco", "geosphere", "readr")
# Only install packages not installed yet
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
# Load packages
library(sp)
library(rgeos)
library(ggplot2)
library(data.table)
library(dplyr)
library(magrittr)
library(readr)
library(spatialEco)
library(geosphere)
library(rgdal)
# clean global env.
rm(new.packages, list.of.packages)
gc(reset = T)
:このスクリプトは、他のユーザーと共有プロジェクトで使用されることを意味していることに注意してくださいので、私はそれが重要なすべてのライブラリが正しくインストールされていることを確認するために見つけます実行中:
source("./R scripts/LoadPackages.R")
一つの欠点は、パッケージが他のパッケージやベースRからの関数を隠すことができることです。特に、Hadleyは彼のパッケージでそれを行うこととの妥協をしていないことが知られています。 – Roland
グローバル環境でオブジェクトを作成し、それを 'rm'するのではなく、関連するコードを'ローカル({...}) '式に入れることを検討するべきです。それがそこにあるのです。 –
なぜ 'data.table'、' dplyr'、 'magrittr'&' readr'をロードしますか?私は 'data.table'だけで十分であることに驚くことはありません。 – Jaap