Xtabs to bn.fit object in bnlearn
library(faraway)
library(bnlearn)
data(femsmoke)
mdl <- empty.graph(c("dead", "age", "smoker"))
modelstring(mdl) <- "[dead|age:smoker][age][smoker]"
counts <- xtabs(y ~ dead + age + smoker, femsmoke)
cpt_age <- margin.table(counts, 2) %>% prop.table
cpt_smoker <- margin.table(counts, 3) %>% prop.table
cpt_dead <- counts
cpt_dead[, , 1] <- prop.table(counts[, , 1], 2)
cpt_dead[, , 2] <- prop.table(counts[, , 2], 2)
fit_mle <- custom.fit(mdl, dist = list(age = cpt_age,
smoker = cpt_smoker,
dead = cpt_dead))
fit <- bn.fit(mdl, rbn(fit_mle, n = sum(femsmoke$y)), method = "bayes")