RのrSymPyは使いにくいので
- シンボリック計算は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)
- pyperパッケージをコマンドプロンプトで以下のようにしてインストール
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コードをファイル保存。本当は、とても長いプロセスの末に出てくるが、ここでは、ちょろっと作る
- 次にpython側でやるのは以下のようなこと