大家好我正在尝试计算矩阵中每行所呈现的每个序列的转移矩阵。例如,我有一个矩阵:
dat<-matrix(c('a','b','c','a','a','a','b','b','a','c','a','a','c','c','a'),nrow = 3)
> `
[,1] [,2] [,3] [,4] [,5]
[1,] "a" "a" "b" "c" "c"
[2,] "b" "a" "b" "a" "c"
[3,] "c" "a" "a" "a" "a" `
我可以使用
轻松计算单行的转换矩阵 > `mylistMc<-markovchainFit(data=dat[1,])`
我得到了正确的结果
> `
a b c
a 0.5 0.5 0
b 0.0 0.0 1
c 0.0 0.0 1`
然后我尝试使用
> `mc<-markovchainListFit(data=dat[1,])`
但是结果很奇怪,它给出了4个矩阵而不是3个(我想它可能需要列而不是行),我相信MarkovChainListFit用于多个序列,我只是不知道如何使用它。 有什么想法吗?谢谢!
答案 0 :(得分:0)
尝试一下:
mc <- apply(t(dat),2,function(x) markovchainFit(x))
trans_mat <- list(mc[[1]][[1]],mc[[2]][[1]],mc[[3]][[1]])