Hi everyone, 

I'm attempting to use the bnlearn package to calculate conditional 
probabilities, and I'm running into a problem when the "cpquery" function is 
used within a loop. I've created an example, shown below, using data included 
with the package. When using the cpquery function in a loop, a variable created 
in the loop ("evi" in the example) is not recognized by the function. I receive 
the error: 

Error in parse(text = evi) : object 'evi' not found 

The creation steps of "evi" are based on examples provided by the author. 

Any help you could provide would be great. I'm eager to find a way that I can 
apply the cpquery function for a large number of observations. 

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) 

Thanks for your help!
        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to