我有一系列数据(类似于蛋白质数据),我想使用隐马尔可夫模型(mhmm)的混合来聚类它们。我选择seqHMM
包来做。但是当我想训练一个mhmm模型时,就会出现这个错误:
build_mhmm(observations = dat, n_states = c(4, 4, 6))
FUN中的错误(X [[i]],...):seqdata应该是状态序列对象,事件序列对象或后缀树。使用seqdef或seqecreate。
我尝试为dat
构建结构。一个是正常序列,另一个是序列矩阵。
例如:
dat<-data.frame(matrix(c("e","f","j","o","d","o","p","k","k","a","d","c"),ncol = 4,nrow = 3))
# X1 X2 X3 X4
#1 e o p a
#2 f d k d
#3 j o k c
和
matrix(paste(dat$X1,dat$X2,dat$X3,dat$X4),nrow = nrow(dat))
#1 "eopa"
#2 "fdkd"
#3 "jokc"
我应该如何更改数据格式,以便使用build_mhmm
使其可读?数据已经存在,我不想使用任何包重新创建它们。我想操纵它们并将它们作为适当的输入。
答案 0 :(得分:1)
我找到了答案。我应该在seqdef(dat)
函数中使用TraMineR
表单包dat
而不是build_mhmm