Functions for creating and working with horizon (sequence) transition probability matrices.
hzTransitionProbabilities(x, name, loopTerminalStates = FALSE) genhzTableToAdjMat(tab) mostLikelyHzSequence(mc, t0, maxIterations=10)
SoilProfileCollection object.x that names horizons.markovchain object. See examples below.markovchain object, initialized from a horizon sequence transition probability matrix with looped terminal states.markovchain object.Details and related tutorial pending...
The function hzTransitionProbabilities returns a square matrix of transition probabilities. See examples.
The function genhzTableToAdjMat returns a square adjacency matrix. See examples.
The function mostLikelyHzSequence returns the most likely sequence of horizons, given a markovchain object initialized from horizon transition probabilities and an initial state, t0. See examples.
These functions are still experimental and subject to change.
data(sp4) depths(sp4) <- id ~ top + bottom # horizon transition probabilities: row -> col transitions (tp <- hzTransitionProbabilities(sp4, 'name')) ## Not run: ------------------------------------ # ## plot TP matrix with functions from sharpshootR package # library(sharpshootR) # par(mar=c(0,0,0,0), mfcol=c(1,2)) # plot(sp4) # plotSoilRelationGraph(tp, graph.mode = 'directed', edge.arrow.size=0.5) # # ## demonstrate genhzTableToAdjMat usage # data(loafercreek, package='soilDB') # # # convert contingency table -> adj matrix / TP matrix # tab <- table(loafercreek$hzname, loafercreek$genhz) # m <- genhzTableToAdjMat(tab) # # # plot # par(mar=c(0,0,0,0), mfcol=c(1,1)) # plotSoilRelationGraph(m, graph.mode = 'directed', edge.arrow.size=0.5) # # # ## demonstrate markovchain integration # library(markovchain) # tp.loops <- hzTransitionProbabilities(sp4, 'name', loopTerminalStates = TRUE) # # # init new markovchain from TP matrix # mc <- new("markovchain", states=dimnames(tp.loops)[[1]], transitionMatrix = tp.loops) # # # simple plot # plot(mc, edge.arrow.size=0.5) # # # check absorbing states # absorbingStates(mc) # # # steady-state: # steadyStates(mc) ## ---------------------------------------------