【发布时间】:2015-01-24 15:16:28
【问题描述】:
这个问题实际上源于我问过自己的这个问题 (Find specific patterns in sequences),但我相信这是一个单独的问题。
根据 Gilbert 的回复,我尝试从状态序列创建事件序列,但遇到了问题。
建议使用
seqe=seqecreate(comp.seq,tevent="state")
然后使用
seqefsub(seqe,strsubseq="(a)-(d)")
但是当我尝试使用 seqecreate() 时出现以下错误:
Error in `seqelength<-`(`*tmp*`, value = c(64, 64, 64, 64, 61, 62, 61, : (...)
s and len should be of the same size.
如果我尝试使用以下方法将其转换为事件序列,也会发生同样的情况:
seqe=seqecreate(comp.seq,tevent="transition")
尝试使用行的子集并确定导致问题的行我发现有问题的行都处于恒定状态,这意味着它们实际上没有转换,它们永久保持在同一个状态中(例如 A-A-A-A-A-A)。
所以我的问题是:
- 我可以设置任何标志或任何东西来进行转换吗?
-
如果不是,我如何删除这些行,因为它们具有不同的长度和缺失值。例如我可能有这样的序列:
missing-missing-A-A-A-A A-A-missing-missing-missing-missing-missing
提前非常感谢!
提供我的数据样本:
comp.seq <- seqdef(comp,NULL,states=comp.scodes,labels=comp.labels, alphabet=comp.alphabet,missing="Z")
comp.seq[1:7,]
1 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-B-B-B-B-B-B-B-B-D-D-D-D-D-A-A-A-A-A-A-A-A-A
2 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-C-C-C-C-C-C-C-C-C-C-C-C-C-C-*-B-B-B-B-B-B-B-B-B-B-B-B-B-A-A-A-A-A-A
3 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-A-A-A-C-C-A-A-A-A-A-A-A-D-D-A-A-A-A-A-A-A-A
4 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-B-B-B-B-B-B-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A
5 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-C-C-D-D-D-D-D-D-D-D-D-D-A-A-A-A-A
6 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-B-B-B-B-B-B-B-B-B-B-B-B-B-D-D-D-D-D-D-D-D-A-A-A-A
7 *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-A-A-A-A-A-A-A-A-A-A-A-A
第 7 行是一个有问题的行。如果我尝试使用 seqecreate(comp.seq[1:6,]) 它可以工作
【问题讨论】:
-
我们无法从您的示例中看到 StatesSequence 是什么。请提供一个最小示例,显示原始数据和状态序列对象的创建
seqdef。