Extract the state of each individual at a given time

get_state(data, t, NAafterTmax = FALSE)

Arguments

data

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

t

time at which extract the state

NAafterTmax

if TRUE, return NA if t > Tmax otherwise return the state associated with Tmax (useful when individuals has different lengths)

Value

a vector containing the state of each individual at time t

Author

Cristian Preda, 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)

# 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