【发布时间】:2019-07-29 02:34:42
【问题描述】:
我正在尝试使用 rpy2 调用“YieldCurve”包中的函数“Nelson.Siegel”。 'Nelson.Siegel' 需要一个 xts 文件(rates)和一个列表(Marurity)作为输入,看来我必须将 pandas 数据框转换为 xts 格式,我不知道如何实现它。而且我不确定我是否以正确的方式调用 Nelson.Siegel 函数。任何帮助将不胜感激。
我尝试使用 pandas2ri.activate() 将数据类型从 pandas 更改为 r,但似乎我需要进一步将其转换为 xts 格式。我尝试在 xts 包中导入 as.xts,但它不能与 rpy2 一起使用。
import pandas as pd
import numpy as np
from rpy2.robjects.packages import importr
import rpy2.robjects as robjects
base = importr('base')
utils = importr('utils')
utils.install_packages('YieldCurve', repos="http://cran.us.r-project.org")
Yieldcurve= importr('YieldCurve')
NelsonSiegel = robjects.r('Nelson.Siegel')
from rpy2.robjects import pandas2ri
pandas2ri.activate()
Maturity=[0.5,1,2]
df = pd.DataFrame(np.random.randint(0,30,size=(10,3)),
columns=["1","2","3"],
index=pd.date_range("20190101", periods=10))
NSParam= NelsonSiegel(df, Maturity)
错误信息:is.finite(if (is.character(from)) from
【问题讨论】: