小编Jam*_*Jam的帖子

R bnlearn eval 内部函数

我正在使用 R 中的 bnlearn 包来训练贝叶斯网络。我在使用以下代码时遇到了麻烦(稍微修改了 bnlearn 示例代码):

library(bnlearn)
data(learning.test)
fitted = bn.fit(hc(learning.test), learning.test)

myfuncBN=function(){

  var = names(learning.test)
  obs = 2
  str = paste("(", names(learning.test)[-3], "=='",
          sapply(learning.test[obs,-3], as.character), "')",
          sep = "", collapse = " & ")
  str2 = paste("(", names(learning.test)[3], "=='",
           as.character(learning.test[obs, 3]), "')", sep = "")
  cpquery(fitted, eval(parse(text = str2)), eval(parse(text = str)))
}

myfuncBN()
Run Code Online (Sandbox Code Playgroud)

此代码引发错误:

结束时出错:无法将类型“闭包”强制转换为“字符”类型的向量

但是,如果 str 和 str2 是在函数 myfuncBN() 之外定义的,则它有效。有谁知道这是什么原因?

r bayesian bnlearn

4
推荐指数
1
解决办法
228
查看次数

标签 统计

bayesian ×1

bnlearn ×1

r ×1