0
我想在Python中重现R结果。下列R-代码工作:使用rpy2通过R函数传递熊猫数据帧
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)
但并不是以下Python代码:
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)
我得到的错误使用TTR.CCI时,在最后一行出现。回溯和错误返回是:
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
没有追溯的错误通常比完全追溯的帮助少得多。另外,如果不确定它发生了什么,请尝试拆分单行程序中的嵌套函数调用。它可以更轻松地检查每个功能是否按预期行事。例如,尝试:'dataf = GSPC [[''High','Low','Close']]'然后在'dataf'上调用'TTR.CCI()'。 – lgautier
@lgautier我已经添加了追溯和分解单线程。 –
正如错误信息所示:rpy2不知道如何处理熊猫数据帧。检查这个问题的答案:http://stackoverflow.com/questions/30922213/minimal-example-of-rpy2-regression-using-pandas-data-frame – lgautier