我正在尝试将NA
传递给R函数,例如,仅使用固定效果(即没有随机效果)使用lme4
混合模型进行预测:
import rpy2.rinterface as ri
from rpy2.robjects.packages import importr
rstats = importr('stats')
rstats.predict( mymodel, re_form=ri.NA_Logical )
但是,由于某种原因,re_form=ri.NA_Logical
无法将NA
传递给re.form
(我也尝试过别名REform
,ReForm
等) 。有什么想法吗?
此R函数: https://www.rdocumentation.org/packages/lme4/versions/1.1-20/topics/predict.merMod
答案 0 :(得分:2)
这可能是通用签名中的函数dispatch /省略号的问题(如果在通用签名中使用了省略号,rpy2无法知道应该将.
转换为{{1 }}的命名参数未知。
尝试:
_
或:
rstats.predict(mymodel, **{'re.form': ri.NA_Logical})
文档中的相关部分是https://rpy2.github.io/doc/v3.0.x/html/robjects_rpackages.html#importing-r-packages和https://rpy2.github.io/doc/v3.0.x/html/robjects_functions.html#rpy2.robjects.functions.SignatureTranslatedFunction(后者主要表示文档就是代码)。
编辑:
还可以通过创造性的方式将R代码与Python混合使用。例如:
lme4 = importr('lme4')
lme4.predict_merMod(mymodel, re_form=ri.NA_Logical)