我对序列分析非常陌生,并试图在聚合序列矩阵中识别集群,重点关注状态持续时间。但是,当使用 method='CHI2'/'EUCLID' 结合 step=1 (不是其他)时,我收到错误:
if (SCres > currentSCres) { 中的错误:需要 TRUE/FALSE 的缺失值
任何想法为什么(距离矩阵中有一些 NaN,它们可能是由于序列长度不同造成的)?
序列对象和距离矩阵是什么样的代码:
Sequence
1 a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a
2 a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a
3 a-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-c-c-c
4 a-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e-e
5 b-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a-a
Distance matrix
1 2 3 4
2 NaN
3 289.92897 NaN
4 141.07472 NaN 263.22855
5 10.22425 NaN 290.10919 141.44473
代码:
library(TraMineR) #version 2.0-13
library(WeightedCluster) #version 1.4
SO = seqdef(DAT,right='DEL')
DM = seqdist(SO, method = "CHI2", step=1, full.matrix = F)
FIT = seqpropclust(SO, diss=DM, maxcluster=8,
properties=c("state", "duration", "spell.age","spell.dur",
"transition","pattern", "AFtransition", "AFpattern","Complexity"))