22

Stack Overflow では、システムにインストールされておらず、後で再利用する予定のないパッケージに関する質問が時々あります。

でパッケージをインストールするとinstall.packages()、R インストール ライブラリの 1 つに配置され、実行するたびにストレージ スペースが必要になり、更新されますupdate.packages()

現在の R セッションのみにパッケージをインストールする方法はありますか?

4

4 に答える 4

24

次の関数を使用して、パッケージを一時的にインストールできます。

tmp.install.packages <- function(pack, dependencies=TRUE, ...) {
  path <- tempdir()
  ## Add 'path' to .libPaths, and be sure that it is not
  ## at the first position, otherwise any other package during
  ## this session would be installed into 'path'
  firstpath <- .libPaths()[1]
  .libPaths(c(firstpath, path))
  install.packages(pack, dependencies=dependencies, lib=path, ...)
}

この方法で簡単に使用できます:

tmp.install.packages("pkgname")

パッケージは一時ディレクトリにインストールされ、そのファイルは次のシステム再起動時に削除されます (少なくとも Linux システムでは)。

于 2013-02-15T14:34:28.377 に答える
10

この問題の別の解決策はdevmodedevtools. Devmode を使用すると、パッケージを開発リポジトリにインストールできるため、開発バージョンをインストールしても他のパッケージは変更されません。例えば:

library(devtools)
devmode()
install_github('ggplot2', 'hadley')
devmode()

バージョンが変更されていないことがわかります。

于 2013-02-15T14:58:04.723 に答える
8

pacman次のようなパッケージ管理の問題を扱います。

library(pacman)

これで、次を使用できます。

p_load("pkgname")   #installs or loads package if already installed
#at end of session:
p_delete("pkgname") #deletes package from lib

これは、ディレクトリにインストールして最後に削除する簡単な方法です (実際には一時的なインストールではありません)。

于 2013-02-15T15:04:37.200 に答える
4

タイラーの答えに加えて、最近、質問が求めることを正確に実行するp_temp関数がpacmanパッケージに追加されました。

library(pacman)
p_temp(pkgname) # or p_temp("pkgname") either work...

これにより、パッケージと依存関係が一時的にインストールされます。

開示:タイラーと私はpacmanパッケージの共著者です...

于 2013-03-24T03:56:50.700 に答える