TraMineR中具有特定子序列的案例列表

时间:2018-03-30 07:04:06

标签: traminer

我正在尝试查看具有特定子序列或子字符串的案例。 在用户指南第10.5.1-10.5.2节中,它指定了如何查找具有特定子序列的案例:

mysubseqstr <- character(2)
mysubseqstr[1] <- "(Parent)-(Left)-(Left+Marr)"
mysubseqstr[2] <- "(Parent)-(Left+Marr)"
mysubseq <- seqefsub(bf.seqestate, strsubseq = mysubseqstr)
print(mysubseq)

Subsequence Support Count
1 (Parent)-(Left+Marr) 0.4870 974
2 (Parent)-(Left)-(Left+Marr) 0.2275 455
Computed on 2000 event sequences
Constraint Value
countMethod One by sequence

msubcount <- seqeapplysub(mysubseq, method = "count")
msubcount[1:3, ]

在此处回答了另一个问题(Find specific patterns in sequences后,我可以列出包含子序列的序列:

rownames(msubcount)[msubcount[,1]==1]

但我无法弄清楚如何获得id的列表(在seqdef函数中使用id =选项定义)具有此子序列。

1 个答案:

答案 0 :(得分:0)

使用id= seqdef参数传递的id用作状态序列对象的行名。假设您的状态序列对象是seq并且您从它创建了事件序列对象bf.seqestate(您没有在代码中显示它!),您将获得包含子序列的序列的id :

rownames(seq)[msubcount[,1] > 0]

请注意,我在>使用method = "count"因为seqeapplysub中的pip,您可以获得每个序列中子序列的出现次数,可以大于1。