## The following specifications of undirected graphs are equivalent:
uG1 <- ug(~a:b, ~a:c, ~b:c ~c:d)
uG2 <- ug(c("a","b"), c("a","c"), c("b","c"), c("c","d"))
uG3 <- ug(~a:b:c, ~c:d)
uG4 <- ug(c("a","b","c"), c("c","d"))
uG5 <- ug(~a:b:c + c:d)
graph::edges(uG1)
graph::nodes(uG1)
## The following specifications of directed acyclig graphs are equivalent:
daG1 <- dag(~a:b:c, ~b:c, ~c:d)
daG2 <- dag(c("a","b","c"), c("b","c"), c("c","d"))
daG3 <- dag(~a:b:c + b:c + c:d)
graph::edges(daG1)
graph::nodes(daG2)
## dag() allows to specify directed graphs with cycles:
daG4 <- dag(~a:b+b:c+c:a) # A directed graph but with cycles
## A check for acyclicity can be done with
## daG5 <- dag(~a:b+b:c+c:a, forceCheck=TRUE)
## A check for acyclicity is provided by topoSort
topoSort( daG3 )
topoSort( daG4 )
## Different representations
uG6 <- ug(~a:b:c + c:d, result="graphNEL") # default
uG6
uG7 <- ug(~a:b:c + c:d, result="NEL") # same
uG7
uG8 <- ug(~a:b:c + c:d, result="matrix") # dense matrix
uG8
uG9 <- ug(~a:b:c + c:d, result="dgCMatrix") # sparse matrix
uG9
Run the code above in your browser using DataLab