3

最も一般的な部分文字列 (すべてのイベントが隣接している IE サブシーケンス) を見つけるためにシーケンスを検索しようとしています。ユーザーガイドには、サブシーケンス検索ツールについて次のように記載されています。

「サブシーケンスのアイデアは、サブストリングの概念の拡張であり、たとえば Elzinga (2008) で詳細に説明されています。シーケンスのサブストリングは必然的に隣接するシンボルで構成されますが、この要件はサブシーケンスの概念で緩和されます。したがって、 x = abac の場合、λ (空の文字列)、u = b、v = bac、および w = bc は x の部分列のセットに属しますが、λ、u = b、および v = bac のみが x の部分文字列です"

その緩和をオフにして、部分文字列のみを見る方法はありますか? これは特にseqefsubコマンドを使用しています。TraMineR マニュアルでこれについて何も見つけることができないので、これに関するヘルプをいただければ幸いです! どうもありがとう、アンドリュー

4

1 に答える 1

3

部分文字列に特定の機能はありませんがTraMineR、時間の制約をいじることで部分文字列のような結果を得ることができます。

たとえばmaxGap=1、 の制約引数を設定すると、seqefsub連続する 2 つの時点で発生するイベントで形成される頻繁なサブシーケンスが得られます。actcalで出荷されるデータを以下に示しますTraMineR

library(TraMineR)
data(mvad)
data(actcal)
## creating a state sequence object
actcal.seq <- seqdef(actcal,13:24,
  labels=c("> 36 hours", "19 to 36 hours", "< 19 hours", "no work"))
## transforming into an event sequence object
actcal.seqe <- seqecreate(actcal.seq, tevent="state")

## frequent subsequences without constraints
fsubs <- seqefsub(actcal.seqe, pMinSupport=.01)

library(TraMineRextras)
fsubsn <- seqentrans(fsubs)
## displaying only subsequences with at least 2 events
fsubsn[fsubsn$data$nevent>1]

## Now with the maxGap=1 constraint
cstr <- seqeconstraint(maxGap=1)
fsstr <- seqefsub(actcal.seqe, pMinSupport=.01, constraint=cstr)
fsstrn <- seqentrans(fsstr)
fsstrn[fsstrn$data$nevent>1]

その例では、連続する位置でイベントが発生するサブシーケンスを取得します。連続するイベント間の経過時間とは関係なく、連続するイベントのサブシーケンスを取得するには、連続する番号として定義されたタイムスタンプを使用してイベント シーケンスを定義します。

id event timestamp
1  A     1   
1  C     2
1  B     3
2  C     1
2  B     2
3  A     1
3  B     2
...

お役に立てれば

于 2014-12-01T14:30:36.310 に答える