Based on the parameters given to a network, the code for
each node is generated and all of the node models are pasted into a
single JAGS model script.
Usage
writeNetworkModel(network, pretty = FALSE)
Arguments
network
an object of class HydeNetwork
pretty
Logical. When TRUE, the model is printed to the console
using the cat function (useful if you wish to copy and paste the
code for manual editing). Otherwise, it is returned as a character
string.
Author(s)
Jarrod Dalton and Benjamin Nutter
See Also
writeJagsModel, writeJagsFormula
Examples
data(PE, package='HydeNet')
Net <- HydeNetwork(~ wells +
pe | wells +
d.dimer | pregnant*pe +
angio | pe +
treat | d.dimer*angio +
death | pe*treat,
data = PE)
#* Default printing
writeNetworkModel(Net)
#* Something a little easier on the eyes.
writeNetworkModel(Net, pretty=TRUE)
Results
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(HydeNet)
Loading required package: nnet
Loading required package: rjags
Loading required package: coda
Linked to JAGS 4.1.0
Loaded modules: basemod,bugs
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/HydeNet/writeNetworkModel.Rd_%03d_medium.png", width=480, height=480)
> ### Name: writeNetworkModel
> ### Title: Generate JAGS Code for a Network's Model
> ### Aliases: writeNetworkModel
>
> ### ** Examples
>
> data(PE, package='HydeNet')
> Net <- HydeNetwork(~ wells +
+ pe | wells +
+ d.dimer | pregnant*pe +
+ angio | pe +
+ treat | d.dimer*angio +
+ death | pe*treat,
+ data = PE)
>
> #* Default printing
> writeNetworkModel(Net)
[1] "model{\n wells ~ dnorm(3.7942, 0.6305)\n pe ~ dbern(ilogit(0.5757 * wells + -3.90355))\n d.dimer ~ dnorm(210.24251 + 68.37938 * pe + 29.29496 * pregnant, 0.03347)\n pi.pregnant[1] <- 0.9014; pi.pregnant[2] <- 0.0986\n pregnant ~ dcat(pi.pregnant)\n pi.angio <- cpt.angio[(pe+1), ]\n angio ~ dcat(pi.angio)\n treat ~ dbern(ilogit(1.73354 * angio + 0.01994 * d.dimer + -5.89316))\n pi.death <- cpt.death[(pe+1), (treat+1), ]\n death ~ dcat(pi.death)\n}"
Warning messages:
1: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
2: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
3: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
4: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
>
> #* Something a little easier on the eyes.
> writeNetworkModel(Net, pretty=TRUE)
model{
wells ~ dnorm(3.7942, 0.6305)
pe ~ dbern(ilogit(0.5757 * wells + -3.90355))
d.dimer ~ dnorm(210.24251 + 68.37938 * pe + 29.29496 * pregnant, 0.03347)
pi.pregnant[1] <- 0.9014; pi.pregnant[2] <- 0.0986
pregnant ~ dcat(pi.pregnant)
pi.angio <- cpt.angio[(pe+1), ]
angio ~ dcat(pi.angio)
treat ~ dbern(ilogit(1.73354 * angio + 0.01994 * d.dimer + -5.89316))
pi.death <- cpt.death[(pe+1), (treat+1), ]
death ~ dcat(pi.death)
}Warning messages:
1: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
2: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
3: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
4: In bind_rows_(x, .id) :
binding factor and character vector, coercing into character vector
>
>
>
>
>
> dev.off()
null device
1
>