Não estou imediatamente ciente de uma função "interna" (por exemplo, in base
ou similar), mas podemos fazer isso com muita facilidade e eficiência em algumas linhas de código.
Aqui está uma função que usa uma matriz (não um quadro de dados) como entrada e produz as contagens de transição ( prob=FALSE
) ou, por padrão ( prob=TRUE
), as probabilidades estimadas de transição.
# Function to calculate first-order Markov transition matrix.
# Each *row* corresponds to a single run of the Markov chain
trans.matrix <- function(X, prob=T)
{
tt <- table( c(X[,-ncol(X)]), c(X[,-1]) )
if(prob) tt <- tt / rowSums(tt)
tt
}
Se precisar chamá-lo em um quadro de dados, você sempre poderá
trans.matrix(as.matrix(dat))
Se você estiver procurando por algum pacote de terceiros, o Rseek ou o site de pesquisa do R poderá fornecer recursos adicionais.