作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 bnlearn package计算条件概率,当 "cpquery" 出现问题时,我遇到了问题函数在循环中使用。我使用包中包含的数据创建了一个示例,如下所示。在循环中使用 cpquery 函数时,该函数无法识别在循环中创建的变量(示例中的“evi”)。我收到错误:
Error in parse(text = evi) : object 'evi' not found
library(bnlearn)
data(learning.test)
fitted = bn.fit(hc(learning.test), learning.test)
bn.function <- function(network, evidence_data) {
a <- NULL
b <- nrow(evidence_data)
for (i in 1:b) {
evi <- paste("(", names(evidence_data), "=='",
sapply(evidence_data[i,], as.character), "')",
sep = "", collapse = " & ")
a[i] <- cpquery(network, (C=='c'), eval(parse(text=evi)))
}
return(a)
}
test <- bn.function(fitted, learning.test)
最佳答案
我不知道这是由于错误修复还是仅仅因为我尝试了另一种方法 - 无论如何,如果您在 cpquery 函数之外迭代地构建证据列表,则循环有效。
一个通过名为 evidenceData 的列表迭代的示例,其中包含全正证据:
for(i in names(evidenceData)){
loopEvidenceList <- list()
loopEvidenceList[[i]] <- "TRUE"
a =cpquery(fitted = bayesNet, event = queryNode == "TRUE",
evidence = loopEvidenceList, method = "lw", n = 100000)
print(a)
}
关于r - 在循环中使用 bnlearn 函数 "cpquery",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260580/
我一直都不喜欢在访问数据库时采用拼接SQL的方法,原因有以下几点: 1. 不安全:有被SQL注入的风险。 2. 可能会影响性能:每条SQL语句都需要数据库引擎执行[语句分析]
我正在尝试使用 bnlearn package计算条件概率,当 "cpquery" 出现问题时,我遇到了问题函数在循环中使用。我使用包中包含的数据创建了一个示例,如下所示。在循环中使用 cpquery
我是一名优秀的程序员,十分优秀!