Homebrew Cask(Homebrew のデスクトップアプリ版)を用いて R,RStudio,各種パッケージをインストールしたときのメモ書き.
開発環境
- OS
$ sw_vers ProductName: Mac OS X ProductVersion: 10.15.5 BuildVersion: 19F10
- Homebrew
$ brew --version Homebrew 2.4.8 Homebrew/homebrew-core (git revision 1dd0; last commit 2020-07-20) Homebrew/homebrew-cask (git revision f49dd; last commit 2020-07-20)
インストール手順
- Homebrew Cask で R のインストール
- Homebrew Cask で RStudio のインストール
- R を起動しパッケージのインストール
手順 1,2 は順不同だが,R をインストールをしていないと当然 RStudio が起動しないため R からインストールすると良い(R が無い状態で RStudio を起動しようとすると「R のバイナリが無い」と怒られる).
1. Homebrew Cask で R のインストール
$ brew cask install r
R はインストールした状態だと文字コードの設定が UTF-8 になっていないため自分で設定し直す必要がある.しかし,RStudio のデフォルトは UTF-8 になっているため問題ない.R 単体で利用するときに気になると言う人は以下を参照して文字コードの設定を行うと良い(正確には locale.言語と地域の設定.).
2. Homebrew Cask で RStudio のインストール
$ brew cask install rstudio
3. R を起動しパッケージのインストール
Bioconductor からパッケージをインストールする.コマンドだけ知りたい場合こちら.
- R を起動
install.packages("BiocManager")
を実行 -> CRAN の選択(Japan(Tokyo)[https]
を選択) -> BiocManger がインストールされるBiocManager::install()
を実行 ->Update all/some/none? [a/s/n]:
->a
を選択しインストール済みのパッケージを全てを更新- BiocManager を用いて各種パッケージのインストール:
BiocManager::install("[package-name]")
BiocManager では,Bioconductor だけでなく CRAN から提供されているパッケージもインストールできる.今回は以下のパッケージをインストール.
- CRAN
- Rcmdr(R commander)
- scatterplot3d
- TeachingDemos
- multcompView
- cluster
- faraway
- Bioconductor
- edgeR
- qvalue(多重検定補正,Bonferroni 法,Benjamini-Hochberg 法,Storey 法)
以下の公式ドキュメントにて Bioconductor から提供されているパッケージ一覧を見ることができる(R 上で BiocManger::available()
を実行することで一覧表示することもできる).
補足資料.FDR について(パッケージ "qvalue" の使い方).
www.slideshare.net
3. R を起動しパッケージのインストール(コマンドのみ)
> chooseCRANmirror() # CRAN の選択 > install.packages("BiocManager") > BiocManager::version() # BiocManager のバージョンを表示 > BiocManager::install() # パッケージの update > BiocManager::install(c("Rcmdr", "scatterplot3d", "TeachingDemos", "multcompView", "cluster", "faraway", "edgeR", "qvalue")) > BiocManager::install()
- インストールされているパッケージ一覧を表示(stackoverflow: Get the list of installed packages by user in R)
> ip = as.data.frame(installed.packages()[,c(1,3:4)]) > ip = ip[is.na(ip$Priority),1:2,drop=FALSE] > ip Package Version BH BH 1.72.0-3 BiocManager BiocManager 1.30.10 BiocVersion BiocVersion 3.11.1 DBI DBI 1.1.0 Formula Formula 1.2-3 Hmisc Hmisc 4.4-0 MatrixModels MatrixModels 0.4-1 R6 R6 2.4.1 RColorBrewer RColorBrewer 1.1-2 Rcmdr Rcmdr 2.6-2 ...
Rcmdr の読み込み
R では libarary([package-name])
でパッケージをメモリ上に読み込む.Rcmdr が読み込まれると新しく Rcmdr 用の Window が立ち上がる.
下記では,RStudio のコンソールから Rcmdr を読み込もうとしたがエラーが出た.Rcmdr を開く際に必要となる GUI 環境である X11(Mac OS のための実装は XQuartz と呼ばれる.参考:X Window System(X11)とは - IT用語辞典 e-Words)がインストールされていなかった.そのため Homebrew Cask を用いて X11 をインストールした.
- Rcmdr の読み込み(エラー)
> library(Rcmdr) Loading required package: splines Loading required package: RcmdrMisc Loading required package: car Loading required package: carData Loading required package: sandwich Loading required package: effects Registered S3 methods overwritten by 'lme4': method from cooks.distance.influence.merMod car influence.merMod car dfbeta.influence.merMod car dfbetas.influence.merMod car lattice theme set by effectsTheme() See ?effectsTheme for details. Error: package or namespace load failed for 'Rcmdr': .onLoad failed in loadNamespace() for 'tcltk', details: call: fun(libname, pkgname) error: X11 library is missing: install XQuartz from xquartz.macosforge.org
- Homebrew Cask による X11(XQuartz)のインストール
$ brew cask install xquartz
- もう一度読み込む(エラー)
> library(Rcmdr) Loading required package: splines Loading required package: RcmdrMisc Loading required package: car Loading required package: carData Loading required package: sandwich Loading required package: effects Registered S3 methods overwritten by 'lme4': method from cooks.distance.influence.merMod car influence.merMod car dfbeta.influence.merMod car dfbetas.influence.merMod car lattice theme set by effectsTheme() See ?effectsTheme for details. Error: package or namespace load failed for 'Rcmdr': .onLoad failed in loadNamespace() for 'Rcmdr', details: call: structure(.External(.C_dotTclObjv, objv), class = "tclObj") error: [tcl] invalid command name "tk_messageBox". In addition: Warning message: In fun(libname, pkgname) : couldn't connect to display ":0"
下記のブログを見ると,XLConnect というライブラリが足りていないらしい(X11 に接続するためのライブラリ?).
- XLConnect のインストール(BiocManager を用いている)
> BiocManager::install('XLConnect') Bioconductor version 3.11 (BiocManager 1.30.10), R 4.0.2 (2020-06-22) Installing package(s) 'XLConnect' also installing the dependency ‘rJava’ trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.0/rJava_0.9-13.tgz' Content type 'application/x-gzip' length 756445 bytes (738 KB) ================================================== downloaded 738 KB trying URL 'https://cran.rstudio.com/bin/macosx/contrib/4.0/XLConnect_1.0.1.tgz' Content type 'application/x-gzip' length 22898238 bytes (21.8 MB) ================================================== downloaded 21.8 MB The downloaded binary packages are in /var/folders/39/vsq_bhlx6ybcft9z3xdgfm2m0000gn/T//RtmpruGZg8/downloaded_packages
> library(Rcmdr) Error: package or namespace load failed for ‘Rcmdr’: .onLoad failed in loadNamespace() for 'Rcmdr', details: call: structure(.External(.C_dotTclObjv, objv), class = "tclObj") error: [tcl] invalid command name "tk_messageBox". > library(XLConnect) Error: package or namespace load failed for ‘XLConnect’: .onLoad failed in loadNamespace() for 'XLConnect', details: call: fun(libname, pkgname) error: Installed java version 14+36-1461 is not between Java>=8 and <=11! This is needed for this package
- Java11 のインストール
$ brew tap AdoptOpenJDK/openjdk $ brew cask install adoptopenjdk $ brew cask install adoptopenjdk8 $ brew cask install adoptopenjdk11 # 現在の Java のバージョン $ java --version # 元々brew cask install java でインストールしていた Java openjdk version "14.0.2" 2020-07-14 OpenJDK Runtime Environment AdoptOpenJDK (build 14.0.2+12) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 14.0.2+12, mixed mode, sharing) # ローカルにある Java のバージョン一覧 $ /usr/libexec/java_home -V Matching Java Virtual Machines (4): 14.0.2, x86_64: "AdoptOpenJDK 14" /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home 14, x86_64: "OpenJDK 14" /Library/Java/JavaVirtualMachines/openjdk-14.jdk/Contents/Home 11.0.8, x86_64: "AdoptOpenJDK 11" /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home 1.8.0_262, x86_64: "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home /Library/Java/JavaVirtualMachines/adoptopenjdk-14.jdk/Contents/Home
- Rcmdr を動かすため,Java11 を指定する
.zshrc
に以下を追加
# XX にバージョン番号を入れる # export JAVA_HOME=`/usr/libexec/java_home -v XX` export JAVA_HOME=`/usr/libexec/java_home -v 11`
シェルを再起動し Java のバージョンを確認.無事 Java 11 が指定されている.
$ java --version openjdk 11.0.8 2020-07-14 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
- 再度 Rcmdr を読み込む(エラー)
- RStudio を再起動し,コンソールで
library(Rcmdr)
を実行. - 無事 X11 と RStudio(R)が接続できた.
- しかし,以下のようなエラーウィンドウが出た.Rcmdr に必要なパッケージが足りないらしい.
- RStudio を再起動し,コンソールで
- 足りないパッケージをインストール
> BiocManager::install(c("sem", "rmarkdown", "rgl", "multcomp", "lmtest", "leaps", "aplpack"))
- 再度 Rcmdr を読み込む(成功)
- エラーなく Rcmdr が起動した!(下記画像のような GUI 環境が起動する)
> library(Rcmdr)
補足:CRAN と Bioconductor
どちらも R のパッケージ提供サイト.Python の PyPI 的な位置付け.Bioconductor は,主に R でバイオ関連データを扱うためのパッケージを提供している.Bioconductor の使い方に関しては以下を参照.