Ubuntuで、Rのバージョンを3.4.1にアップデートした後、パッケージが見つからない場合の対処法をお伝えいたします。

すでにRStudio上でRを動かしている場合、パッケージのインストール先はデフォルトでユーザーのホームディレクトリ配下になっています。
今回の問題は、このホームディレクトリ配下のパスを認識しなくなったことが原因です。

環境

環境を確認しておきます。

ubuntuのバージョン


$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

Rのバージョン


$ R --version

R version 3.4.1 (2017-06-30) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

RStudioのバージョン


RStudio
Version 1.0.143 – © 2009-2016 RStudio, Inc.
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) RStudio Safari/538.1 Qt/5.4.0

確認

R上でRがどのパスを認識しているかを確認します。
私の環境では次のようになり、ホームディレクトリ配下のパッケージのインストール先が認識されていないことが確認できます。


> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"       "/usr/lib/R/library"

対処法: 今までと同じ

R起動時にホームディレクトリ配下のパッケージのインストール先ディレクトリを認識するためには、/etc/R/Renvironファイルを変更します。
次は、vimで/etc/R/Renvironを開いています。


$ sudo vim /etc/R/Renviron

/etc/R/Renvironファイルで43〜45行目あたりの次の箇所をコメントアウトします。


【変更前】
# edd Jun 2017  Comment-out R_LIBS_USER
#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

【変更後】
# edd Jun 2017  Comment-out R_LIBS_USER
R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

最後に、Rを立ち上げ直してR上で設定した内容が反映されているかを確認します。


> .libPaths()
[1] "/home/system-developer/R/x86_64-pc-linux-gnu-library/3.4"
[2] "/usr/local/lib/R/site-library"                           
[3] "/usr/lib/R/site-library"                                 
[4] "/usr/lib/R/library" 

対処法: 一時的

一時的に、指定したディレクトリをパッケージのインストール先として認識させる場合は、Rの.libPaths関数を用いて反映させることもできます。
.libPaths関数の引数に、既存のディレクトリと新たに追加するディレクトリを指定すれば認識されます。


> .libPaths(c(.libPaths(), "/home/system-developer/R/x86_64-pc-linux-gnu-library/3.4/"))

この方法は一時的にディレクトリを認識させる方法であるため、Rを立ち上げたときに毎回設定しなくてはならないことにご注意ください。

関連する記事

  • R MASSパッケージcorresp関数のエラー対処方法 RのMASSパッケージ内のcorresp関数を用いたとき、エラーに悩まされたので、皆様と共有しておく。 環境 Ubuntuのバージョン $ cat /etc/lsb-release […]
  • UbuntuにRをインストールするための手順UbuntuにRをインストールするための手順 UbuntuにRをインストールするための手順をお伝えする。 Ubuntuのバージョン確認 Ubuntuのバージョンを確認するために、端末を起動し(ショートカットキー:Ctrl+Alt+t)、以下のコマンドを実行する。 DISTRIB_CODENAMEの行を控えておこう。下の内容では「trusty」の部分を控えておく。 $ cat […]
  • R UbuntuでRからMariaDBへ接続する方法 UbuntuでRからMariaDBへ接続して、データフレームとして取得する方法をお伝えする。 環境 Ubuntuのバージョン $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu […]
  • R 関数に時間制限を設ける方法 ある処理にとても時間が掛かるため、一定時間経過後はその処理を途中で打ち切りたいときがある。 例えば、for文で、あるループだけが重いため全体として時間が掛かってしまう場合、その処理を一旦スキップしてfor文の先に処理を進めたい、などである。 ここでは、そのひとつの解決策として、関数に時間制限を設けて、一定時間経過後はその関数を強制終了するコードをご紹介する。 ただし […]
  • R スミルノフ・グラブス検定を繰り返し用いて外れ値を除去する方法 スミルノフ・グラブス検定は、正規分布を仮定した標本において、最大値または最小値が外れ値かどうか判定する検定の一つである。 外れ値を除去する際、外れ値を一つずつ検証することよりも、外れ値がすべて除去されたデータだけがほしいときもあるのではないだろうか。 ここでは、正規分布を仮定したデータからスミルノフ・グラブス検定を繰り返し用いて外れ値を除去するソースコードをご紹介する […]
R アップデート後にパッケージが見つからない場合の対処法