2017-05-07 4 views
0

私はPythonでRのspi関数を使用しています。引数( "kernel")の1つにリストが必要ですが、rpy2を使用するときにどのようにそれを渡すかわかりません。次のようにこれまでのところ("カーネル" 引数を使用してなし)rpy2を引数としてリストを渡す

library("lmomco", lib.loc="~/lib/R_libs") 
library("SPEI", lib.loc="~/lib/R_libs") 

data = read.csv("rainfall_data.csv", header = FALSE) 
result = spi(data, scale=10, distribution='Gamma', fit='max-lik', kernel = list(type='rectangular', shift=0)) 

私のPythonスクリプトです::R構文は次のように( "カーネル" 引数で)だろう

import numpy as np 
from rpy2.robjects.packages import importr 
importr('lmomco') 
SPEI = importr('SPEI') 

import rpy2.robjects.numpy2ri as numpy2ri 
numpy2ri.activate() 

data = np.genfromtxt('rainfall_data.csv', delimiter=',') 

result = np.array(SPEI.spi(data, scale=10, distribution='Gamma', fit='max-lik')[1]) 

カーネルをrpy2のリストとしてどのように渡すのですか?

答えて

2

次に、Pythonの辞書からListVectorを作成することを検討してメソッドに渡し:

import rpy2.robjects as robjects 
... 
x = robjects.ListVector({'type': 'rectangular', 'shift': 0}) 

result = np.array(SPEI.spi(data, scale=10, distribution='Gamma', fit='max-lik', kernel=x)[1]) 
関連する問題