gpt4 book ai didi

python - rpy2:将 Python 中的 NA 表示为 R 函数的参数

转载 作者:行者123 更新时间:2023-12-01 01:11:18 25 4
gpt4 key购买 nike

我正在尝试将 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

最佳答案

这可能是泛型签名中的函数调度/省略号的问题(如果在泛型签名中使用省略号,rpy2 无法知道它应该将 . 转换为_ 表示未知的命名参数)。

尝试:

rstats.predict(mymodel, **{'re.form': ri.NA_Logical})

或者:

lme4 = importr('lme4')
lme4.predict_merMod(mymodel, re_form=ri.NA_Logical)

文档中的相关部分是 https://rpy2.github.io/doc/v3.0.x/html/robjects_rpackages.html#importing-r-packageshttps://rpy2.github.io/doc/v3.0.x/html/robjects_functions.html#rpy2.robjects.functions.SignatureTranslatedFunction (后者主要意味着文档就是代码)。

编辑:

还可以以创造性的方式将 R 代码与 Python 混合。例如:

myfunc = robjects.r('function (x) predict.merMod(x, re.form=NA)')
myfunc(mymodel)

关于python - rpy2:将 Python 中的 NA 表示为 R 函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54848635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com