金魚亭日常

読書,ガジェット,競技プログラミング

Jupyter notebook の python から rpy2 で R のパッケージを呼び出す(Windows)

Miniconda 使っているので,

conda install rpy2

でインストール

Rは C:\R\R-3.3.2

にインストールしてある.

Jupyter notebook を起動して, 環境変数 R_HOME を設定していない場合,

import os
os.environ["R_HOME"] = "C:\\R\\R-3.3.2"

として,設定する.

あとはドキュメント通りに. パッケージを読み込む場合,

import rpy2.interactive as r
import rpy2.interactive.packages

rlib = r.packages.importr("package-name")

とすると,読み込める.

とりあえず,名前付き数値ベクトルを作りたいときは,

vec = rpy2.robjects.FloatVector([1,2,3])
vec.names = rpy2.robjects.StrVector(["a", "b", "c"])

などとする. 値を取り出すときは,tuple() とか list() とかで取り出す.

list(vec)
# [1,2,3]
list(vec.names)
# ["a", "b", "c"]

はまりどころとしては,R の場合は変数名に . を使うことができるが,それは rpy2 経由で見ると _ に置換される. パッケージの関数名とか,引数とか.