No tengo conocimiento inmediato de una función "incorporada" (p. Ej., En base
o similar), pero podemos hacerlo de manera muy fácil y eficiente en un par de líneas de código.
Aquí hay una función que toma una matriz (no un marco de datos) como entrada y produce los recuentos de transición ( prob=FALSE
) o, por defecto ( prob=TRUE
), las probabilidades de transición estimadas.
# 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
}
Si necesita llamarlo en un marco de datos, siempre puede hacerlo
trans.matrix(as.matrix(dat))
Si está buscando un paquete de terceros, Rseek o el sitio de búsqueda R pueden proporcionar recursos adicionales.