Python と R から関数をインポートする

Julia中級

Anthony Markham

Quantitative Developer

パッケージ概要

  • Julia のプログラムで Python や R のパッケージを使いたい場合があります。
  • その理由はさまざまです。

    • 特定パッケージに慣れている
    • Python または R にしかないニッチなパッケージ
    • ほかのコードとの一貫性
  • これを実現する Julia パッケージは 2 つ: PythonCallRCall

using Pkg
Pkg.add("PythonCall")
Pkg.add("RCall")
  • 逆も可能です。Python や R から Julia のコードを使えます。
Julia中級

Python パッケージのインポート

  • PythonCall を使うと、Julia で Python の関数を呼び出せます。
  • Python 側にインストールされていれば、任意の Python パッケージが利用可能です。
using PythonCall
  • Python のパッケージを読み込むには pyimport を使います。
pytime = pyimport("time")
  • PythonCall には本コースで扱わない高度な機能も多数あります。
Julia中級

Python 関数の呼び出し

  • base の time パッケージの任意の関数を呼び出せます。
using PythonCall
pytime = pyimport("time")
println(pytime.ctime())
Sun Jan 22 12:16:28 2023
  • Python の書式化を含め、複数の関数を組み合わせられます。
println(pytime.strftime("%m-%Y", pytime.localtime()))
01-2023
Julia中級

R ライブラリのインポート

  • RCall を使うと、Julia で R の関数を呼び出せます。
  • RCall のインストール前に、R 本体のインストールが必要です。
  • R 側にインストールされていれば、任意の R パッケージが利用可能です。
using RCall
  • R のパッケージを読み込むには @rimport を使います。
@rimport base
@rimport ggplot2
  • RCall には本コースで扱わない高度な機能も多数あります。
Julia中級

R 関数の呼び出し

  • この例では R の base 環境の関数を呼び出します。
  • インポート時にエイリアスを付けられます。
using RCall
@rimport base as r_base
r_base.sum([1, 2, 3, 4, 5])
RObject{IntSxp}
[1] 15
Julia中級

R の sum の出力

  • Julia の出力を R の出力と素早く比較できます。
RObject{IntSxp}
[1] 15

R コンソール出力

Julia中級

R 関数をさらに呼び出す

  • 次に、同じく base パッケージの abbreviate 関数を試します。
r_base.abbreviate(["Anthony", "Rachel", "Steve", "Julia"], 3)
RObject{StrSxp}
Anthony  Rachel   Steve   Julia
  "Ant"   "Rch"   "Stv"   "Jul"

Julia中級

Let's practice!

Julia中級

Preparing Video For Download...