使用rpy2时无法在mgcv包中找到预测值

时间:2017-02-01 20:52:39

标签: python rpy2 predict gam mgcv

我正在使用rpy2与mgcv pkg进行通信,以获得gam预测。

我可以通过使用mgcv pkg来获得一个gam,但是当我尝试使用预测方法时,它会错误地显示错误:

  

NameError:名称'predict'未定义

以下是我的代码。

import pandas as pd 
import numpy as np
from rpy2.robjects.packages import importr
import rpy2.robjects as ro
import pandas.rpy.common as com
from rpy2.robjects import pandas2ri

pandas2ri.activate()
r_mgcv = importr('mgcv')
base = importr('base')

MainDt = pd.read_csv(FileLocation, header=0)
R_MainDF = com.convert_to_r_dataframe(MainDt)

modparams = "PGOOD ~ "

for c in R_MainDF.colnames:
    if 'RAW' in str(c):
        modparams += " s (`" + c + "`) + " 

modparams = str(modparams)[:-2]
gamFit = r_mgcv.gam(ro.Formula(modparams), data=R_MainDF)

以下行错误输出:

eolPred= r_mgcv.predict(gamFit,newdata=R_MainDF, type="terms")
r_mgcv.matrix(ro.NA_Character,base.nrow(R_MainDF), base.ncol(R_MainDF)-2)

我做错了什么?

1 个答案:

答案 0 :(得分:1)

正如错误所说:

NameError: name 'predict' is not defined
在命名空间predict中找不到

r_mgcv

检查如何在此处找到R符号的位置(在哪个包/命名空间中): http://rpy2.readthedocs.io/en/version_2.8.x/robjects_rpackages.html#finding-where-an-r-symbol-is-coming-from