Extract the state of each individual at a given time
get_state(data, t, NAafterTmax = FALSE)
data.frame containing id
, id of the trajectory, time
, time at which a change occurs and
state
, associated state.
time at which extract the state
if TRUE, return NA if t > Tmax otherwise return the state associated with Tmax (useful when individuals has different lengths)
a vector containing the state of each individual at time t
# 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)
# get the state of each individual at time t = 6
get_state(d_JK, 6)
#> 1 2 3 4 5 6 7 8 9 10
#> 1 1 4 3 2 2 2 2 2 3
# get the state of each individual at time t = 12 (> Tmax)
get_state(d_JK, 12)
#> 1 2 3 4 5 6 7 8 9 10
#> 2 1 3 2 1 4 2 3 4 4
# if NAafterTmax = TRUE, it will return NA for t > Tmax
get_state(d_JK, 12, NAafterTmax = TRUE)
#> 1 2 3 4 5 6 7 8 9 10
#> NA NA NA NA NA NA NA NA NA NA