r - 为什么我收到在此函数中找不到的“对象”?
问题描述
query_averager <- function(arg1,
arg2) {
n = tibble()
i = 1
while (i <= 100) {
n[i] <- cpquery(fitted = fitted_bn_01,
event = (ret == "Acima da Selic") ,
evidence = (solidez == arg1) & (resultado == arg2))
i = i+1
}
return (mean(n))
}
Query_result <- query_averager(arg1 = "1", arg2 = "Lucro acima da mediana")
这给了我“找不到对象 arg1”,但是当我在cpquery()
外面使用该函数时,它工作得很好。
没有 query_averager 函数的工作代码:
cpquery(fitted = fitted_bn_01,
event = (ret == "Acima da Selic") ,
evidence = (solidez == "1") & (resultado == "Lucro acima da median"))
我相信其他变量是什么并不重要,主要问题是为什么:
solidez == "1"
有效,下面的代码段无效:
solidez == arg1
解决方案
证据表达式中似乎没有任何变量,因为它们不会在函数体中进行评估。因此,您似乎必须在评估之前操作函数调用。我没有安装和工作这个包,但它似乎可以工作:
query_averager <- function(arg1, arg2) {
n = tibble()
i = 1
while (i <= 100) {
n[i] <- eval(substitute(cpquery(fitted = fitted_bn_01,
event = (ret == "Acima da Selic") ,
evidence = (solidez == arg1) & (resultado == arg2))))
i = i+1
}
mean(n)
}
该substitute()
部分将 和 的值注入arg1
到arg2
表达式中。然后我们用 评估那个表达式eval()
。
推荐阅读
- javascript - 为什么我的两个常数总是具有相同的高度值?
- c++ - 尝试使用我的库时出现 CodeBlocks 链接器问题
- flutter - RenderPadding 对象在布局期间被赋予无限大小
- python - Python浮点数和小数位精度
- sass - 无法在 wsl ubuntu 20.04 上编译 sass
- sparse-matrix - 使用 Eigen 加速 B = A.transpose() * B * A 用于密集和稀疏矩阵
- javascript - 在 cytoscapeJs 中设置节点样式
- django - “找不到该进程类型(网络)。” 从 Django 部署到 Heroku 时
- javascript - 如何将节点键与Javascript中的对象键数组匹配?
- r - R - 按日期绘制列中参数的移动平均值