Julia の REPL を起動
まずは,Mac のターミナルで
$ julia
として,Julia の REPL を起動する。
Rcall パッケージをインストール
(@v1.5) pkg> add RCall
Updating registry at `~/.julia/registries/General`
######################################################################## 100.0%
Resolving package versions...
Installed WinReg ─ v0.3.1
Installed RCall ── v0.13.10
Updating `~/.julia/environments/v1.5/Project.toml`
[6f49c342] + RCall v0.13.10
Updating `~/.julia/environments/v1.5/Manifest.toml`
[6f49c342] + RCall v0.13.10
[1b915085] + WinReg v0.3.1
Building RCall → `~/.julia/packages/RCall/eRsxl/deps/build.log`
RCall を読み込む
julia> using RCall
[ Info: Precompiling RCall [6f49c342-dc21-5d91-9882-a32aef131414]
R を使う
もうこれだけで R が使える。
R"Rのスクリプト" という形で入力すると R での実行結果が表示される。
Julia のフィッシャーの正確確率検定は 2 x 2 分割表しか使えないので,R の fisher.test() を使って分析してみる。
julia> R"fisher.test(matrix(c(12, 3, 2, 4, 3, 8), ncol=3, byrow=TRUE))"
RObject{VecSxp}
Fisher's Exact Test for Count Data
data: matrix(c(12, 3, 2, 4, 3, 8), ncol = 3, byrow = TRUE)
p-value = 0.02349
alternative hypothesis: two.sided
実行結果を Julia で取り出す
julia> obj = rcopy(R"fisher.test(matrix(c(12, 3, 2, 4, 3, 8), ncol=3, byrow=TRUE))")
OrderedCollections.OrderedDict{Symbol,Any} with 4 entries:
:p_value => 0.0234889
:alternative => "two.sided"
:method => "Fisher's Exact Test for Count Data"
:data_name => "matrix(c(12, 3, 2, 4, 3, 8), ncol = 3, byrow = TRUE)"
のようにして,要素を指定すれば取り出せる。
julia> obj[:p_value]
0.023488871014407855
Julia の変数(データ)を R に渡す
$ で変数埋め込み。
julia> mat = [12 3 2; 4 3 8]
2×3 Array{Int64,2}:
12 3 2
4 3 8
julia> R"fisher.test($mat)"
RObject{VecSxp}
Fisher's Exact Test for Count Data
data: `#JL`$mat
p-value = 0.02349
alternative hypothesis: two.sided
'$' キーを押して R 環境へ
Julia のプロンプトで '$' キーを押すとプロンプトが 'R>' に代わり,R のプログラムが直接書ける。
R> t.test(c(2,1,3,2,5), c(3,2,1,2,4))
Welch Two Sample t-test
data: c(2, 1, 3, 2, 5) and c(3, 2, 1, 2, 4)
t = 0.2357, df = 7.4269, p-value = 0.82
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-1.783304 2.183304
sample estimates:
mean of x mean of y
2.6 2.4
Julia に戻る
'delete' キーを押せば Julia に戻る。
julia>