Python+R PypeRの使い方
PythonとRを同時に使うことが多いため、PypeRなるライブラリを使ってみます。
ファイル操作はPython、ネットワーク分析はRに軍配が上がると思いますが、往復するのが面倒臭いと思って導入してみました。
sudo pip install pyper
でインストール
import pyper r=pyper.R() print r("library(igraph)") print r("dg<-matrix(c(0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0),nrow=4,ncol=4,byrow=TRUE)") print r("dg")
或いは、
import pyper r=pyper.R() print r(""" library(igraph) dg<-matrix(c(0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0),nrow=4,ncol=4,byrow=TRUE) dg """)
出力をそのままコピーすると以下のようになりました。
try({library(igraph)}) try({dg<-matrix(c(0,1,0,1,0,1,0,1,1,0,0,1,0,0,0,0),nrow=4,ncol=4,byrow=TRUE)}) try({dg}) [,1] [,2] [,3] [,4] [1,] 0 1 0 1 [2,] 0 1 0 1 [3,] 1 0 0 1 [4,] 0 0 0 0
pyperをimportして、r=pyper.R()でrオブジェクトを作ります。
rに引数として文字列を与えれば、その文字列そのまま、Rのターミナルへ入力したものと同じ扱いとなります。
print関数を付けるとR出力を標準出力として出せ、変数に文字列として代入することもできます。
どうもRのほうで文法ミスするとプログラムが停止しないので、一旦Rを実行できたら、そのソースコードをコピペするという使い方をしてみようと思います。
以前紹介したsqliteライブラリの扱いそっくりですね。
パイプ (コンピュータ) - Wikipedia
このpipeとpython→RをかけてPypeRということでしょうね。
逆にRからPythonを操作するrPythonライブラリもあるそうです。