Nothing
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
bnfit2nbn <- function(bn.fit)
#TITLE transforms a /bn.fit/ of /bnlearn/ package to a /nbn/
#DESCRIPTION returns a \code{nbn} object
# from a Gaussian \code{bn.fit} object of /bnlearn/
# package.
#DETAILS
# If \code{bn.fit} is not pertinent, a fatal error
# is issued.
#KEYWORDS
#INPUTS
#{bn.fit}<< The object to be transformed.>>
#[INPUTS]
#VALUE
# A list following the \code{nbn} specification
#EXAMPLE
#REFERENCE
#SEE ALSO
#CALLING
#COMMENT
#FUTURE
#AUTHOR J.-B. Denis
#CREATED 12_05_11
#REVISED 12_05_11
#--------------------------------------------
{
# checking
if (!inherits(bn.fit, "bn.fit")) {
r.erreur(bn.fit,message="This object is not of class 'bn.fit'")
}
# initializing the resulting object
res <- vector("list",length(bn.fit))
names(res) <- names(bn.fit)
# filling each node
for (nn in r.bf(res)) {
sigma <- bn.fit[[nn]]$sd
bnc <- bn.fit[[nn]]$coefficients
mui <- which(names(bnc)=="(Intercept)")
if (length(mui)!=1) {
r.erreur(list(nn,bn.fit[[nn]]),
message="unexpected node of 'bn.fit'")
}
mu <- bnc[mui]
parents <- names(bnc)[-mui]
regcoef <- bnc[-mui]
res[[nn]] <- list(mu=mu,sigma=sigma,parents=parents,regcoef=regcoef)
}
# providing the topological order
tor <- order4nbn(res)
res <- res[tor]
# returning
res
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
bn2nbn <- function(bn)
#TITLE transforms a /bn/ of /bnlearn/ package to a /nbn/
#DESCRIPTION returns a \code{nbn} object
# from a DAG (\code{bn} object) of /bnlearn/
# package. O and 1 coefficients are introduced...
#DETAILS
#KEYWORDS
#INPUTS
#{bn}<< The object to be transformed.>>
#[INPUTS]
#VALUE
# A list following the \code{nbn} specification
#EXAMPLE
#REFERENCE
#SEE ALSO
#CALLING
#COMMENT
#FUTURE
#AUTHOR J.-B. Denis
#CREATED 13_05_02
#REVISED 13_05_02
#--------------------------------------------
{
# checking
if (!inherits(bn, "bn")) {
r.erreur(bn,message="This object is not of class 'bn'")
}
nono <- bn$nodes
# initializing the resulting object
res <- vector("list",length(nono))
names(res) <- names(nono)
# filling each node
for (nn in names(res)) {
sigma <- 1
mu <- 0
parents <- nono[[nn]]$parents
regcoef <- rep(1,length(parents))
res[[nn]] <- list(mu=mu,sigma=sigma,parents=parents,regcoef=regcoef)
}
# providing a topological order
tor <- order4nbn(res)
res <- res[tor]
# returning
res
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
nbn2bnfit <- function(nbn,onlydag=FALSE)
#TITLE transforms a /nbn/ to a /bn.fit/ of /bnlearn/ package
#DESCRIPTION returns a \code{bn.fit} object
# from a Gaussian \code{nbn} object of /rbmn/
# package.
#DETAILS
#KEYWORDS
#INPUTS
#{nbn}<< The object to be transformed.>>
#[INPUTS]
#{onlydag} << Indicates if only the DAG must be computed. In that
# case a /bn/ object of /bnlearn/ is returned.
#VALUE
# The resulting \code{bn.fit} (or \code{bn}) object.
#EXAMPLE
#REFERENCE
#SEE ALSO
#CALLING
#COMMENT
#FUTURE
#AUTHOR J.-B. Denis
#CREATED 12_11_29
#REVISED 13_04_24
#--------------------------------------------
{
# checking
if (!requireNamespace("bnlearn"))
stop("this function requires the bnlearn package.")
# creating the dag
mod <- string7dag4nbn(nbn,":")
dag <- bnlearn::model2network(mod)
if (onlydag) { return(dag);}
# incorporating the parameters
prodis <- vector("list",0)
for (nn in r.bf(nbn)) {
para <- vector("list",0)
para$coef <- c(nbn[[nn]]$mu)
for (pp in r.bf(nbn[[nn]]$parents)) {
para$coef <- c(para$coef,nbn[[nn]]$regcoef[pp])
}
names(para$coef) <- c("(Intercept)",nbn[[nn]]$parents)
para$sd <- nbn[[nn]]$sigma
prodis[[nn]] <- para
}
names(prodis) <- names(nbn)
# creating the bnfit
res <- bnlearn::custom.fit(dag,dist=prodis)
# returning
res
}
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.