count <- function(chain, states) { # # INPUT: chain - time series of events # states - number of states in chain # # OUTPUT: the transition matrix for chain # # This function returns # a transition matrix for chain (missing values allowed) # # check the number of states if(max(chain[!is.na(chain)]) > states) stop(paste("you need", max(chain), "states for your\ndata")) # initialize the counts kount <- matrix(0, nrow = states, ncol = states) # start counting for(i in 2:length(chain)) if (sum(is.na(chain[(i-1):i]))==0) kount[chain[i - 1], chain[i]] <- kount[chain[i - 1], chain[ i]] + 1 return(kount) }