Pythonのrequirements.txt
のような機能はありますか?そこでは、使用されるパッケージのリストをファイルに保存できます。他の人がプログラムを実行したい場合や依存関係をインストールする必要がある場合は、いつでもpip install -r requirements.txt
を実行できます。
これは、Rスクリプトを本番環境にデプロイするときに非常に役立ちます。そのような機能がない場合、どのように複製できますか?
コメントに従って、パッケージのビルドと、要件をDESCRIPTIONファイルに含めることを検討する必要がある場合があります。 .Rスクリプトを「本番環境」に置くことについて話している場合は、必要なパッケージがインストールされていることを確認する関数を最初に置くことができます。これは、自分のパッケージにある行に沿ったものであり、スクリプトの先頭でpkgLoad( <list of packages> )
を呼び出して、パッケージがインストールおよびロードされていることを確認できます。 pkgLoad()
を呼び出すと、通常の容疑者すべてがインストールおよびロードされるように、お気に入りのパッケージのリストを含めます。
pkgLoad <- function( packages = "favourites" ) {
if( length( packages ) == 1L && packages == "favourites" ) {
packages <- c( "data.table", "chron", "plyr", "dplyr", "shiny",
"shinyjs", "parallel", "devtools", "doMC", "utils",
"stats", "microbenchmark", "ggplot2", "readxl",
"feather", "googlesheets", "readr", "DT", "knitr",
"rmarkdown", "Rcpp"
)
}
packagecheck <- match( packages, utils::installed.packages()[,1] )
packagestoinstall <- packages[ is.na( packagecheck ) ]
if( length( packagestoinstall ) > 0L ) {
utils::install.packages( packagestoinstall,
repos = "http://cran.csiro.au"
)
} else {
print( "All requested packages already installed" )
}
for( package in packages ) {
suppressPackageStartupMessages(
library( package, character.only = TRUE, quietly = TRUE )
)
}
}
注意:お気に入りのCRANミラーを関数に組み込んだので、自分のニーズに合わせて編集してください。