「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。データ分析・語学に力点を置いています。 →現在、コンサルタントの雛になるべく、少しずつ勉強中です(※2024年1月21日改訂)。

MENU

Juliaを基礎からゆっくりと(その13/18)

 \mathrm{R}\mathrm{Python}\mathrm{C}言語関係など覚えたいもの、覚えるべきものはたくさんある一方で、注目が集まっているから、やってみたい。ということでプログラミング言語としての\mathrm{Julia}を学んでいく。

3. Juliaライブラリの使い方

3.3 他言語の呼び出し

 \mathrm{Julia}は歴史が浅く成熟したライブラリが少ないため、他言語の成熟したライブラリを用いることも一考の余地がある。

3.3.2 Rの呼び出し

 \mathrm{Julia}から\mathrm{R}の機能を呼び出すには\mathrm{RCall.jl}を用いる。

using RCall
using DataFrames

const rabs = R"abs"

rabs(-1.2) # 返り値はRObject

# Juliaのオブジェクトにするにはrcopyを呼び出す
a = rcopy(rabs(-1.2))
typeof(a)

# JuliaのオブジェクトをRのオブジェクトにするにはrobjectを呼び出す
class = R"class"

obj = robject(DataFrame(:x => [1,2,3],:y => randn(3)))
    
println(class(obj))

#
x = [1.0, 2.0, 3.0]

R"sum($x)" # R側にJuliaのオブジェクトを渡す際には、$(...)を用いることも可能

list = R"list(x = c(1,2,3), y = \"foo\")"

println(list)

# Rのリストオブジェクトから一部を抜き出す操作:
list[2] # R内におけるlist[[2]]に相当


### R側で回帰してパラメータの推定値をJuliaに返す
n = 100
x = randn(n)
df = DataFrame(x = x, y = 2x .+ 1 .+ randn(n) * 0.1)

fit = R"lm(formula = formula(y ~ x+1), data = $(df))" # 線形回帰モデルを当てはめ

getnames(fit) # 名前属性を得る

fit[:coefficients][2]

 \mathrm{Julia}ドキュメンテーション機能として、\mathrm{docstring}を紹介する。

3.4 docstringの読み方

# ヘルプは?+関数名で実行
?push!

3.4.1 Markdown

 \mathrm{docstring}などで標準的に用いられるのが\mathrm{Markdown}と呼ばれるマークアップ言語である。
 \mathrm{Markdown}では、テキストのパラグラフは次のように1行以上の空白行で区別する。

The first paragraph.
This is the first paragraph.


The second paragraph.
This is the second paragraph.

 一部の文字は、特殊な意味を示す記法に使われる。
 複数行から成るコードを書く場合、バッククォートを3つ重ねて加工。

# バッククォートによるコードの記法
```
function foo(x, y)
# ...
end
```

プライバシーポリシー お問い合わせ