- シンボリック計算はRではやりにく
- pythonにはSymPyパッケージがあってかなり楽
- RにはこのpithonのSymPyをjava経由で使うというパッケージrSymPyというものがあるのだが、java SDKの設定など難関・陥穽が厳しく、断念…。WindowsもMacも断念
- じゃあ、ということで、Rでやりたいことをやって、SymPyでやりたいところだけ、pythonでやる作戦はどうか、ということになり、やってみる
- pythonを立ち上げ、python側からRをバックグラウンド実行して、オブジェクトを取ってこれたら成功、という定義で試してみる
- 参考サイトはこちら
- まず、Rでやりたいことは、"pypertest.R"ファイルに書くことにする
X <- sample(1:10,3)
pip install pyper
- pythonを起動し(anacondaとかを使って、一通りが入っているのが良い。pandaパッケージは使う)(実際にはJupyter notebookでpython3カーネルのipynbを作り)、以下の手順でやれば、Rで作成した乱数が表示できる
- めでたしめでたし
import pyper
import pandas as pd
r = pyper.R(use_pandas='True')
r("source(file='pypertest.R')")
X = pd.Series(r.get("X"))
print(X)
- うまくいったので、いざ、SymPyへ
- やりたいことは、SymPyで作りたい式の係数の値をRで作り、それをpython側に持ってきて、SymPyの変数に代入した式を作ること
- まず、係数を作るRコードをファイル保存。本当は、とても長いプロセスの末に出てくるが、ここでは、ちょろっと作る