部分文字列に特定の機能はありませんが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
...
お役に立てれば