我正在使用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)
我做错了什么?
答案 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