0

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

我可以通过使用 mgcv pkg 来获得 gam fit,但是当我尝试使用 predict 方法时,它会因错误而出错:

NameError:名称“预测”未定义

以下是我的代码。

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)

我究竟做错了什么 ?

4

1 回答 1

2

正如错误所说:

NameError: name 'predict' is not defined

predict在命名空间中找不到r_mgcv

检查如何查找此处定义 R 符号的位置(在哪个包/命名空间中):

https://rpy2.github.io/doc/v3.1.x/html/robjects_rpackages.html#finding-where-an-r-symbol-is-coming-from

于 2017-02-03T19:48:50.283 回答