我试图从另一个接受公式作为参数的函数中调用checkm函数 . 我收到一个找不到对象的错误 . 这是最小的实现和错误 .
library(lrmest)
data(pcd)
form<-formula(Y~X1+X2+X3+X4)
checkm(form,data=pcd)
Wrap<-function(f){
checkm(f,data=pcd)
}
Wrap(form)
错误是:
Error in model.frame(formula = f, data = pcd, NULL) :
object 'f' not found
Called from: eval(expr, envir, enclos)
我从阅读中猜测这与我不理解的环境或承诺有关,但鉴于我不理解它们,我可能错了 .
任何快速修复?
2 回答
一个快速解决方法是更改公式参数的名称 . 它恰好与
checkm
内的eval(cal)
调用冲突 . 我怀疑@joran是对的,这不是你的错 . 这有效:正如@joran指出的那样,由于没有使用正确的帧来评估命令,导致函数出现错误/错误 . 如果换出
checkm
为lm
,你会发现它运行得很好 . 您可以创建自己的函数,只更改一行代码然后运行
一切似乎运行正常 . 所以这似乎是编写代码的人的错 . 您可以考虑与他们联系以提交错误报告 .