J'utilise la fonction spi de R en Python. L'un des arguments ("kernel") nécessite une liste, et je ne suis pas sûr de savoir comment le transmettre lors de l'utilisation de rpy2. La syntaxe de R serait la suivante (avec l'argument "noyau"):passer la liste comme argument si 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))
script Python Ma jusqu'à présent (sans en utilisant l'argument "noyau") est la suivante:
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])
Comment passer le noyau comme une liste pour rpy2?