[R] Using "cpquery" function from bnlearn package inside loop

Ryan Morrison ryan.r.morrison at me.com
Fri Oct 11 17:50:25 CEST 2013

Thanks Marco,

The cpquery function is definitely easier to use given that my evidence is contained in lists. 

Thanks for your help!


Ryan Morrison, PE
PhD Candidate
University of New Mexico
Department of Civil Engineering
Centennial Engineering Center, Room 3057
Phone: 505-633-5506
Email: rmorriso at unm.edu

On Oct 10, 2013, at 3:16 AM, Marco Scutari <marco.scutari at gmail.com> wrote:

> Dear Ryan,
> On 9 October 2013 21:26, Ryan Morrison <ryan.r.morrison at me.com> wrote:
>> 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
> [snip]
> Based on the second example you emailed me off-list, it appears to be
> a scoping problem; that's why the same code works if it's not inside a
> function. I will try to debug this soon, but I am not an expert in R
> parsing mechanisms so it will take some time. In the mean time, you
> can use cpquery(..., method = "lw") instead of the default
> cpquery(..., method = "ls") if your query looks like the one in the
> example. The former does not rely on unevaluated expressions, but
> takes the conditioning values as a list, and it should work
> regardless. However, if you do so I suggest you should install the
> latest bugfix snapshot from bnlearn.com to avoid a few other bugs in
> cpquery(..., method = "lw").
> Cheers,
>    Marco
> -- 
> Marco Scutari, Ph.D.
> Research Associate, Genetics Institute (UGI)
> University College London (UCL), United Kingdom

More information about the R-help mailing list