1. ホーム
  2. r

[解決済み] Rを再起動せずにパッケージをアンロードする方法

2022-01-26 21:52:58

質問

Rを再起動することなくパッケージをアンロードしたいのですが(主に、異なる競合するパッケージを試すためにRを再起動するのはイライラするからですが、考えられるのは、ある関数と別の関数を使用するプログラムでこれを使用できることです--その用途では名前空間参照の方が良いアイデアでしょうが)、どうしたらいいですか?

?library には、パッケージをアンロードするようなオプションは表示されません。

があります。 提案 その detach はパッケージのアンロードができますが、以下は両方とも失敗します。

detach(vegan)

のエラー detach(vegan) : 無効です name 引数

detach("vegan")

のエラー detach("vegan") : 無効です name 引数

では、パッケージをアンロードするにはどうすればいいのでしょうか?

解決方法は?

これを試してみてください(参照 ?detach をご覧ください)。

detach("package:vegan", unload=TRUE)


一度に複数のバージョンのパッケージを読み込むことが可能です(例えば、開発版と安定版が異なるライブラリにある場合など)。すべてのコピーが切り離されることを保証するために、この関数を使用してください。

detach_package <- function(pkg, character.only = FALSE)
{
  if(!character.only)
  {
    pkg <- deparse(substitute(pkg))
  }
  search_item <- paste("package", pkg, sep = ":")
  while(search_item %in% search())
  {
    detach(search_item, unload = TRUE, character.only = TRUE)
  }
}

使い方は、例えば

detach_package(vegan)

または

detach_package("vegan", TRUE)