Interfacing with the pcalg R package
The pcalg package (link) is a versatile R package for structure learning. It implements both score-based algorithms such as the Greedy Equivalent Search (GES) and constraint-based algorithms such as the PC. It is one of the few R packages that can handle discrete data sets as well as continuous data sets.
Exporting a network structure to pcalg
Exporting bn or bn.fit objects to pcalg is not currently implemented in
bnlearn.
Importing a network structure from pcalg
Importing network structures is implementeed in as.bn().
> library(pcalg) > data("gmG") > suffStat = list(C = cor(gmG8$x), n = nrow(gmG8$x)) > pc.gmG = pc(suffStat, indepTest = gaussCItest, p = ncol(gmG8$x), alpha = 0.01) > library(bnlearn) > as.bn(pc.gmG)
Random/Generated Bayesian network
model:
[partially directed graph]
nodes: 8
arcs: 8
undirected arcs: 2
directed arcs: 6
average markov blanket size: 2.25
average neighbourhood size: 2.00
average branching factor: 0.75
generation algorithm: Empty
Importing fitted Bayesian networks into bn.fit objects is not supported. Note that as graphs are imported
with as.bn() they are checked to be acyclic, unless the user specifies check.cycles = FALSE.
Fri Aug 1 23:02:35 2025 with bnlearn
5.1
and R version 4.5.0 (2025-04-11).