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言語 CRAN Task View:ケモメトリックスと計算物理学R言語 CRAN Task View:ケモメトリックスと計算物理学 CRAN Task View: Chemometrics and Computational Physicsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Katharine Mullen Contact: katharine.mullen at […]
  • R言語 CRAN Task View:クラスター分析&有限混合モデルR言語 CRAN Task View:クラスター分析&有限混合モデル CRAN Task View:Cluster Analysis & Finite Mixture Modelsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Friedrich Leisch, Bettina Gruen Contact: Bettina.Gruen at […]
  • R言語 CRAN Task View:統計遺伝学R言語 CRAN Task View:統計遺伝学 CRAN Task View: Statistical Geneticsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載した。 Maintainer: Giovanni Montana Contact: g.montana at […]
  • R 文字列ベクトルで文字列を指定して要素を削除する方法R 文字列ベクトルで文字列を指定して要素を削除する方法 Rの文字列ベクトルで、文字列を指定して要素を削除する方法をお伝えする。 通常、ベクトルの要素を削除する場合は、次のように添字にマイナスを付加して削除する。 > s # 1番目の要素を削除 > s[-1] [1] "猫である。" "名前は" "まだ無い。" > # 1番目から2番目の要素を削除 > s[-1:-2] [1] "名前は" […]
  • TensorFlow チュートリアルDeep MNIST for Expertsを試してみるTensorFlow チュートリアルDeep MNIST for Expertsを試してみる TensorFlowのチュートリアルDeep MNIST for Expertsを試してみる。 import tensorflow as tf import input_data # MNISTデータを取得 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # […]
R アップデート後にパッケージが見つからない場合の対処法