インストール
パッケージは、インターネット上のパッケージ・リポジトリーCRANから、自動でダウンロードしてきて、自動でインストールするinstall.packages
を使うのが一般的です。png
パッケージをインストールしてみましょう。
install.packages("png", repos = "https://ftp.yz.yamagata-u.ac.jp/pub/cran/")
repos
はCRANの場所を指定するオプションで、ここでは日本のミラーサイトを指定しています。指定せず、options
での設定もないと、選択することになります。options
で指定する場合は、以下のようにします。
options(repos = "https://ftp.yz.yamagata-u.ac.jp/pub/cran/")
Rtoolsをインストールしてある場合、type = "source"
をつけることで、ソースコードをダウンロードしてきて、コンパイルしてからインストールさせることもできます。
ダウンロード
パッケージはダウンロードだけすることもできます。
(r_dp <- download.packages("png", Sys.getenv("TEMP")))
上の例では一時フォルダーにダウンロードしています。なお、戻り値の行列の2列目にファイルパスが入っています。
ローカルからインストール
ファイルパスを指定して、インストールすることもできます。ダウンロードしたpngパッケージをインストールしてみましょう。ファイル名がバージョンごとに変わることに注意してください。
install.packages(file.path(Sys.getenv("TEMP"), "png_0.1-8.tar.gz"), repos = NULL, dependencies = TRUE)
インストールの確認
パッケージ名とインストール先とタイトルの一覧を確認できます。
with(library(quietly=TRUE, verbose=FALSE), {
results[results[, "Package"]=="png", ]
})
インストールを促す
「~という名前のパッケージはありません」と言うエラーメッセージが混乱を招きそうな場合、別のメッセージを用意することもできます。
loadpkg <- function(pkgs){
pkgnames <- library(quietly=TRUE, verbose=FALSE)$results[,"Package"]
for(pkg in pkgs){
if(!any(suppressWarnings(pkgnames == pkg))){
stop(sprintf("Do install.packages(\"%s\") before runnning this script.", pkg))
}
library(pkg, character.only = TRUE)
}
}
loadpkg("png")
取扱説明書
Rのパッケージにはビネットと呼ばれる取扱説明書を添付する仕組みがあります。
ビネットが無い場合も多いですし、あっても簡単な利用例から推定方法の理論的説明まで内容は様々なのですが、分からないことがあったら眺めてみることをお勧めします。
pngパッケージにはビネットはないので、ggplot2のビネットを見る例を示します。
# ggplot2の中のビネットの一覧を表示する
vignette(package = "ggplot2")
# 一覧にあったggplot2-specsを表示する
vignette("ggplot2-specs", "ggplot2")
# ブラウザーでビネットを見る
browseVignettes("ggplot2")
ロード
パッケージ名を指定してロードします。ダブルコーテーションは要りません。
変数でパッケージ名を指定したい場合(もしくはダブルコーテーションをつけたい場合)は、character.only = TRUE
をつけてください。
ロードなし利用
パッケージ内の関数などのオブジェクトは、関数名の前に::
を挟んでパッケージ名を指定すれば、library
で呼び出さなくても利用することができます。
rmarkdown::render("mgpkg.Rmd")
関数名が被ったときなどに使います。
アンロード
ロードしたパッケージを消すときは、以下のようにします。
detach("package:png", unload="TRUE")
引数はパッケージ名にpackage:
のプリフィックスがついているだけですが、search()
で確認できます。
アップデート
再インストールしてもよいのですが、update.packages
で一括アップデートできます。library
でロードしている場合はアップデートに失敗するので、Rの起動直後に行うのが無難です。
update.packages(ask = FALSE)
なお、古いパッケージをold.packages()
でリストできます。
削除
インストール先のフォルダーを消せばよいです。間違えると惨劇になるので、OSから消した方が無難でしょう。それでもRから行う場合は、以下のようにします。
unlink(with(library(quietly=TRUE, verbose=FALSE), {
r <- results[results[, "Package"]=="png", ]
file.path(r["LibPath"], r["Package"])
}), recursive = TRUE)