2019年5月11日土曜日

[R] Windows10にRStudioをインストール

WIndows10にRStudioをインストールした際のメモです.

まずは,CRANからRStudioのインストーラーをダウンロードします.
"Download R for Windows" を選択して,その後,base > Download R 3.6.0 for Windows (3.6.0は現時点でのバージョン)をクリックするとインストール実行ファイルのダウンロードが始まります.

その後,ダウンロードした"R-3.6.0-win.exe (3.6.0は現時点でのバージョン)"を実行するとインストールが始まります.
基本的にデフォルトのまま進めば良いのですが,Windows10は64bit OSなので,32-bit Filesのチェックは外します.

インストールが完了したら,R(Rx64 3.6.0)を起動します.
外部パッケージをインストールするには,あらかじめ,外部パッケージをダウンロードしておきます(今回はTSSSをインストールしたいので,こちら(TSSS_1.2.4.zip)からダウンロード).
メニューの "パッケージ > Install package(s) from local files..." を選択し,"Select files"でダウンロードした TSSS_1.2.4.zip を選択します.
メニューのパッケージから "パッケージの読み込み","Select one"で"TSSS"を選択します.


これで,パッケージの読み込みは完了です.

試しに以下のように入力してみます.


うまくいっているようなので,とりあえずこれで良しとします.

2019年5月10日金曜日

[R] Jupyter NotebookでRを使う

以前に,Homebrew経由でRをインストールする記事を投稿しました.
今回は,RをJupyter Notebookで使えるようにするための手順のメモです.

まずは,ターミナルからRを起動します.
$ r

続いて,IRkernelのページにある手順に従って必要になるパッケージをインストールします.
> options(repos="https://cran.ism.ac.jp")
> install.packages(c('rzmq','repr','IRkernel','IRdisplay'),repos = c('http://irkernel.github.io/', getOption('repos')))

パッケージのインストールが完了したら,Rのコマンドラインから,以下を実行します.
> IRkernel::installspec()

その結果,以下のように表示されれば完了です.
[InstallKernelSpec] Installed kernelspec ir in /Users/hide/Library/Jupyter/kernels/ir

Jupyter Notebookを起動して,"New"を選択(クリック)した際に,以下のように"R"が表示されれば成功です.
ただ,現時点では外部のパッケージをJupyter Notebookで使う設定ができていません...

2019年5月9日木曜日

[R] Homebrew経由でRをインストール

Homebrew経由でRをインストールした際のメモです.

ターミナルから,以下のコマンドを入力します.
$ brew tap brewsci/science
以前は,外部リポジトリの `homebrew/science` に `tap` すれば良かったようですが,外部リポジトリ `brewsci/science` に `tap` しなければならなくなっているようです.
brew tapでscienceリポジトリを追加します*.

その後に `R` をインストールします.

$ brew install r

これで,無事 `R` がインストールされます.

以下のようにして,`R`を起動します.

$ R



無事,インストールが成功していれば,以下のような画面が表示されます.
R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin17.7.0 (64-bit)

R は、自由なソフトウェアであり、「完全に無保証」です。 
一定の条件に従えば、自由にこれを再配布することができます。 
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。 

  Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

'demo()' と入力すればデモをみることができます。 
'help()' とすればオンラインヘルプが出ます。 
'help.start()' で HTML ブラウザによるヘルプがみられます。 
'q()' と入力すれば R を終了します。 

 起動準備中です -  警告メッセージ: 
1: Setting LC_COLLATE failed, using "C" 
2: Setting LC_TIME failed, using "C" 
3: Setting LC_MESSAGES failed, using "C" 
4: Setting LC_MONETARY failed, using "C" 

さらに,RStanをインストールするには,Rが立ち上がっている状態で,以下のコマンドを入力します.
> install.packages("rstan")

すると,以下のようにインストールが始まります.
下記ののように,ミラーサイトの選択を要求されるので,Japan(42)を選択します.
 パッケージを ‘/usr/local/lib/R/3.6/site-library’ 中にインストールします 
 (‘lib’ が指定されていないため) 
 --- このセッションで使うために、CRAN のミラーサイトを選んでください --- 
Secure CRAN mirrors 

 1: 0-Cloud [https]                   2: Algeria [https]                
 3: Australia (Canberra) [https]      4: Australia (Melbourne 1) [https]
 5: Australia (Melbourne 2) [https]   6: Australia (Perth) [https]      
 7: Austria [https]                   8: Belgium (Ghent) [https]        
 9: Brazil (PR) [https]              10: Brazil (RJ) [https]            
11: Brazil (SP 1) [https]            12: Brazil (SP 2) [https]          
13: Bulgaria [https]                 14: Chile 1 [https]                
15: Chile 2 [https]                  16: China (Hong Kong) [https]      
17: China (Guangzhou) [https]        18: China (Lanzhou) [https]        
19: China (Shanghai 1) [https]       20: China (Shanghai 2) [https]     
21: Colombia (Cali) [https]          22: Czech Republic [https]         
23: Denmark [https]                  24: Ecuador (Cuenca) [https]       
25: Ecuador (Quito) [https]          26: Estonia [https]                
27: France (Lyon 1) [https]          28: France (Lyon 2) [https]        
29: France (Marseille) [https]       30: France (Montpellier) [https]   
31: France (Paris 2) [https]         32: Germany (Erlangen) [https]     
33: Germany (Göttingen) [https]      34: Germany (Münster) [https]      
35: Greece [https]                   36: Hungary [https]                
37: Iceland [https]                  38: Indonesia (Jakarta) [https]    
39: Ireland [https]                  40: Italy (Padua) [https]          
41: Japan (Tokyo) [https]            42: Japan (Yonezawa) [https]       
43: Korea (Busan) [https]            44: Korea (Gyeongsan-si) [https]   
45: Korea (Seoul 1) [https]          46: Korea (Ulsan) [https]          
47: Malaysia [https]                 48: Mexico (Mexico City) [https]   
49: Norway [https]                   50: Philippines [https]            
51: Serbia [https]                   52: Spain (A Coruña) [https]       
53: Spain (Madrid) [https]           54: Sweden [https]                 
55: Switzerland [https]              56: Turkey (Denizli) [https]       
57: Turkey (Mersin) [https]          58: UK (Bristol) [https]           
59: UK (London 1) [https]            60: USA (CA 1) [https]             
61: USA (IA) [https]                 62: USA (KS) [https]               
63: USA (MI 1) [https]               64: USA (OR) [https]               
65: USA (TN) [https]                 66: USA (TX 1) [https]             
67: Uruguay [https]                  68: (other mirrors)                


Selection: 42

すると,インストールが始まります(ズラズラと画面が流れて,完了までに結構時間がかかります).

Rへの読み込みは,以下のようにコマンドを入力します.
> library(rstan)

以下の設定を行うことが推奨されているようです.

> rstan_options(auto_write=TRUE)
> options(mc.cores=parallel::detectCores())
最初のコマンドは,コンパイルした結果を保存するもので,次のコマンドは複数のコアを使用するものです.

`R` を終了させるには,以下のコマンドを入力します.
> quit()
___
* `tap`を実行すると,以下のような画面が流れます.
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
...
==> Tapping brewsci/science
Cloning into '/usr/local/Homebrew/Library/Taps/brewsci/homebrew-science'...
remote: Enumerating objects: 435, done.
remote: Counting objects: 100% (435/435), done.
remote: Compressing objects: 100% (431/431), done.
remote: Total 435 (delta 2), reused 181 (delta 2), pack-reused 0
Receiving objects: 100% (435/435), 398.22 KiB | 152.00 KiB/s, done.
Resolving deltas: 100% (2/2), done.
Tapped 416 formulae (455 files, 1.2MB).
`...` は実際に表示されず,略していることを表します.

** `R`のインストールが始まると,以下のような画面が流れます.
==> Installing dependencies for r: isl, mpfr, gcc, gettext, libpng, openblas, pcre and readline
...
==> readline
readline is keg-only, which means it was not symlinked into /usr/local,
because macOS provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.

For compilers to find readline you may need to set:
  export LDFLAGS="-L/usr/local/opt/readline/lib"
  export CPPFLAGS="-I/usr/local/opt/readline/include"

For pkg-config to find readline you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/readline/lib/pkgconfig"
`...` は実際に表示されず,略していることを表します.

2019年5月8日水曜日

Juliaの計算の仕組み

Juliaは,
「関数を実行したときに,与えられた引数の型情報を使い,その関数をネイティブコードにコンパイルしてから実行する仕組み」
なので,高速に計算したい場合は関数化して計算する必要があります.

以下に,円周率のモンテカルロ計算を実行した時にかかる時間の計測例を示します.
(オリジナルは,黒木玄さんの「JuliaとJupyterのすすめ」にあるコードを転用してREPLで確認)

円周率のモンテカルロ計算を関数化せずに実行する場合
julia> @time begin
       L = 10^7
       c = 0
       for i in 1:L
       global c
       c += ifelse(rand()^2+rand()^2 ≤ 1, 1, 0)
       end
       4c/L
       end
  1.940780 seconds (40.00 M allocations: 762.914 MiB, 1.05% gc time)
3.13768

関数化して実行場合する場合
julia> function simpi(L=10^7)
       c = 0
       for i in 1:L
       c += ifelse(rand()^2+rand()^2 ≤ 1, 1, 0)
       end
       4c/L
       end
simpi (generic function with 2 methods)

julia> @time simpi(10^5)
  0.020499 seconds (25.11 k allocations: 1.288 MiB)
3.12924

実行環境にもよりますが,上記の例では処理速度が,数十倍も違うことが確認できるはずです.
なお,オリジナルの,黒木玄さんの「JuliaとJupyterのすすめ」には,gccと比較しても断然速いことが示されていいます.

ただし,gccで適切なライブラリを選定すると,Juliaより速く計算できる例も示されていますが,最適なライブラリ設定は面倒な(というよりわからない)事も多々あるので,Juliaで計算することのメリットを実感することができます.

上記の例のJupyter Notebookファイルは,GitHubMechanism of calculation.ipynbというファイルで見ることができます.

2019年5月7日火曜日

[macOS] HomeBrew list コマンド

HomeBrewでインストールしたソフトを確認するには,ターミナルで以下のように入力します.
$ brew list

すると,HomeBrew経由でインストールしたものの一覧が表示されます.

一覧の中でアンインストールしたいものがあるときは,以下のように入力します.
$ brew uninstall xxx

HomeBrew自体のアンインストールを行いたい場合は,以下のように入力します.

$ ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”