3
我使用R中的bnlearn包来训练贝叶斯网络。我用下面的代码(略有修改bnlearn例如代码)的烦恼:R bnlearn eval函数内部
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()
此代码引发错误:不能强制类型“闭合”到类型“字符”的矢量:收卷过程中
错误
但是,如果在函数myfuncBN()外定义了str和str2,它就可以工作。 有谁知道这个的原因?
谢谢,对我的作品! – Jam