Calculates a frequency table counting the number of times each pair of states were observed in successive observation times.

statetable(data, removeDiagonal = FALSE)

Arguments

data

data.frame containing id, id of the trajectory, time, time at which a change occurs and state, associated state.

removeDiagonal

if TRUE, does not count transition from a state i to i

Value

a matrix of size K*K containing the number of transition for each pair

Author

Quentin Grimonprez

Examples

# Simulate the Jukes-Cantor model of nucleotide replacement
K <- 4
PJK <- matrix(1 / 3, nrow = K, ncol = K) - diag(rep(1 / 3, K))
lambda_PJK <- c(1, 1, 1, 1)
d_JK <- generate_Markov(n = 10, K = K, P = PJK, lambda = lambda_PJK, Tmax = 10)

# table of transitions
statetable(d_JK)
#>   1  2 3  4
#> 1 0  8 6 10
#> 2 6  0 9 13
#> 3 4 10 0  7
#> 4 7 15 8  0