LoginSignup
1
0

More than 5 years have passed since last update.

arulesSequences ライブラリで汎用的data.frameを処理する

Posted at

arulesSequences を使いこなすには、前処理で適切なデータフレームへの変換が必要です。
容易に使えるように以下のようなラッパーをかませて使いたいところです。

文字列はfactor, 数値はdiscretizeでfactorに変換

シーケンスはすべてfactorでないとなりません。

df$str <- factor(df$str)
df$num <- discretize(df$num)

eventIDは昇順のIDとして付与

通常eventIDになりそうなIDがついているデータはそうは無いので、row_number()を使ってシーケンシャルなIDをつけましょう。

例として seqIDでシーケンスのIDが定められたすでに時刻などでソートされたデータについて、eventIDとsequenceIDを付与する方法を示します。

    df <- df %>% group_by(seqID) %>%
            mutate(eventID = row_number()) %>%
            arrange(eventID) %>%
          { mutate(ungroup(.), sequenceID = group_indices(.)) }%>%
           arrange(sequenceID)

全部数値にするのはかなり面倒で間違いやすいですが、このライブラリが許容しないので致し方ないです。
value 列も必要になるので、あとで追加しておきます。

ファイルで行って来い(汗)

Rのライブラリに多いのですが、カスタムデータセット形式のbuilderが、入力としてファイルしか取れないです。
正直、うんざりですが、これも仕方ないですねorz

    write.table(df, "./temp.csv", sep = ",", row = F, col = F)
    os <- read_baskets("./temp.csv", sep = ",", info = c("sequenceID", "eventID"))

こんなuglyなコードはhelperとして関数化しておきたいところです。。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0