0
Ich versuche, R-Ergebnisse in Python zu reproduzieren. Der folgende R-Code funktioniert:Übergabe eines Pandas-Datenrahmens durch eine R-Funktion mit rpy2
library("TTR")
library("zoo")
library("xts")
library("quantmod")
getSymbols("^GSPC",from = "2014-01-01", to = "2015-01-01")
dataf = GSPC[,c("GSPC.High", "GSPC.Low", "GSPC.Close")]
result = CCI(dataf, n=20, c=0.015)
Aber nicht der folgende Python-Code:
from datetime import datetime
from rpy2.robjects.packages import importr
TTR = importr('TTR')
import pandas_datareader as pdr
from rpy2.robjects import pandas2ri
pandas2ri.activate()
GSPC = pdr.get_data_yahoo(symbols='^GSPC', start=datetime(2014, 1, 1), end=datetime(2015, 1, 1))
dataf = GSPC[['High', 'Low', 'Close']]
result = TTR.CCI(dataf, n=20, c=0.015)
Der Fehler tritt ich in der letzten Zeile erhalten, wenn TTR.CCI verwenden. Traceback und Fehler zurückgegeben:
Traceback (most recent call last):
File "svm_strat_test_oliver.py", line 30, in <module> result = TTR.CCI(dataf, n=20, c=0.015)
File "/usr/local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 178, in __call__
return super(SignatureTranslatedFunction, self).__call__(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/rpy2/robjects/functions.py", line 106, in __call__
res = super(Function, self).__call__(*new_args, **new_kwargs)
rpy2.rinterface.RRuntimeError: Error in `[.data.frame`(center, beg:NROW(x)) : undefined columns selected
Der Fehler ohne die Rückverfolgung ist oft viel weniger hilfreich als die vollständige Rückverfolgung. Versuchen Sie auch, verschachtelte Funktionsaufrufe in Einzeilern aufzubrechen, wenn Sie sich nicht sicher sind, was passiert. Es erleichtert das Überprüfen, ob sich jede Funktion wie erwartet verhält. Versuchen Sie zum Beispiel: 'dataf = GSPC [['High', 'Low', 'Close']]' und rufen Sie dann 'TTR.CCI()' auf 'dataf' auf. – lgautier
@ lgautier Ich habe die Traceback hinzugefügt und die Einzeiler aufgeteilt. –
Wie die Fehlermeldung sagt: rpy2 weiß nicht, was mit Pandas-Datenrahmen zu tun ist. Überprüfen Sie die Antworten für diese Frage: http://stackoverflow.com/questions/30922213/minimal-example-of-rpy2-regression-using-pandas-data-frame – lgautier