Мені не одразу відомо про "вбудовану" функцію (наприклад, в base
або подібну), але ми можемо це зробити дуже просто та ефективно за пару рядків коду.
Ось функція, яка приймає матрицю (а не кадр даних) як вхідний дані і створює оцінені ймовірності переходу або рахує переходи ( prob=FALSE
), або, за замовчуванням ( prob=TRUE
).
# 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
}
Якщо вам потрібно зателефонувати на кадр даних, ви завжди можете це зробити
trans.matrix(as.matrix(dat))
Якщо ви шукаєте якийсь сторонній пакет, то Rseek або пошуковий сайт R можуть надавати додаткові ресурси.