## Create network from conditional probability tables CPTs:
yn <- c("yes", "no")
a <- cpt(~asia, values=c(1,99), levels=yn)
t.a <- cpt(~tub + asia, values=c(5,95,1,99), levels=yn)
s <- cpt(~smoke, values=c(5,5), levels=yn)
l.s <- cpt(~lung + smoke, values=c(1,9,1,99), levels=yn)
b.s <- cpt(~bronc + smoke, values=c(6,4,3,7), levels=yn)
e.lt <- cpt(~either + lung + tub, values=c(1,0,1,0,1,0,0,1), levels=yn)
x.e <- cpt(~xray + either, values=c(98,2,5,95), levels=yn)
d.be <- cpt(~dysp + bronc + either, values=c(9,1,7,3,8,2,1,9), levels=yn)
cpt_list <- list(a, t.a, s, l.s, b.s, e.lt, x.e, d.be)
chest_cpt <- compileCPT(cpt_list)
## Alternative: chest_cpt <- compileCPT(a, t.a, s, l.s, b.s, e.lt, x.e, d.be)
chest_bn <- grain(chest_cpt)
## Create network from data and graph specification.
data(lizard, package="gRbase")
## From a DAG: height <- species -> diam
daG <- dag(~species + height:species + diam:species)
## From an undirected graph UG : [height:species][diam:species]
uG <- ug(~height:species + diam:species)
liz_ug <- grain(uG, data=lizard)
liz_dag <- grain(daG, data=lizard)
Run the code above in your browser using DataLab