Python リストの項目を取得し、それらを R の関数に通し、R ListVector として出力する関数があります。問題は、ドキュメントで ListVector から通常の Python オブジェクトに変換する方法が見つからないことです。これが私のコードです:
from rpy2.robjects.packages import importr
from rpy2.robjects import r
forecast = importr("forecast")
parallel = importr("multicore")
data = [[1, 2, 3], [4, 5, 6,], [7, 8, 9]]
tuples = tuple(tuple(x) for x in data)
data_list = []
for i in range(0, len(data)):
result1 = "k = as.numeric((list%r))" % (tuples[i],)
data_list.append(result1)
def forecaster(item):
rcode = item
r(rcode)
rcode1 = 'j <- ts(k)'
r(rcode1)
rcode2 = 'p <- parallel(forecast(k, 5, level = c(80,95)))'
r(rcode2)
rcode3 = 'collect(list(p))'
return r(rcode3)
z = [forecaster(x) for x in data_list]
実行z
すると、次のような出力が得られます。
[<ListVector - Python:0x4e5f908 / R:0x4a0fcd8>
[ListVector]
<ListVector - Python:0x4e5f908 / R:0x4a0fcd8>
[ListVector], <ListVector - Python:0x4e5fcf8 / R:0x49f9c48>
...等々。これらの ListVectors を Python で実際に使用できるものに変換する方法を教えてください。ありがとう。