# rmarkovchain: Function to generate a sequence of states from homogeneous or... In markovchain: Easy Handling Discrete Time Markov Chains

## Description

Provided any `markovchain` or `markovchainList` objects, it returns a sequence of states coming from the underlying stationary distribution.

## Usage

 ```1 2``` ```rmarkovchain(n, object, what = "data.frame", useRCpp = TRUE, parallel = FALSE, num.cores = NULL, ...) ```

## Arguments

 `n` Sample size `object` Either a `markovchain` or a `markovchainList` object `what` It specifies whether either a `data.frame` or a `matrix` (each rows represent a simulation) or a `list` is returned. `useRCpp` Boolean. Should RCpp fast implementation being used? Default is yes. `parallel` Boolean. Should parallel implementation being used? Default is yes. `num.cores` Number of Cores to be used `...` additional parameters passed to the internal sampler

## Details

When a homogeneous process is assumed (`markovchain` object) a sequence is sampled of size n. When a non - homogeneous process is assumed, n samples are taken but the process is assumed to last from the begin to the end of the non-homogeneous markov process.

## Value

Character Vector, data.frame, list or matrix

## Note

Check the type of input

## Author(s)

Giorgio Spedicato

## References

A First Course in Probability (8th Edition), Sheldon Ross, Prentice Hall 2010

`markovchainFit`, `markovchainSequence`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26``` ```# define the markovchain object statesNames <- c("a", "b", "c") mcB <- new("markovchain", states = statesNames, transitionMatrix = matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3, byrow = TRUE, dimnames = list(statesNames, statesNames))) # show the sequence outs <- rmarkovchain(n = 100, object = mcB, what = "list") #define markovchainList object statesNames <- c("a", "b", "c") mcA <- new("markovchain", states = statesNames, transitionMatrix = matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3, byrow = TRUE, dimnames = list(statesNames, statesNames))) mcB <- new("markovchain", states = statesNames, transitionMatrix = matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3, byrow = TRUE, dimnames = list(statesNames, statesNames))) mcC <- new("markovchain", states = statesNames, transitionMatrix = matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3, byrow = TRUE, dimnames = list(statesNames, statesNames))) mclist <- new("markovchainList", markovchains = list(mcA, mcB, mcC)) # show the list of sequence rmarkovchain(100, mclist, "list") ```