1
   Server  Epoch      A B C D E
    1 C301 1420100400 1 0 1 0 0
    2 C301 1420100700 0 0 0 0 0
    3 C301 1420152000 0 1 0 0 0
    4 C301 1420238100 1 1 1 0 0
    5 C301 1420324500 1 1 1 1 1

上記のマトリックスをバスケットまたはトランザクション形式 (パッケージ arulesSequences の cSpade アルゴリズムで使用するため) に変換して、マトリックス内のすべての「1」がトランザクション アイテムになるように支援が必要です。つまり、出力は次のようになります。

Server    Epoch       #items    Items
C301      1420100400  2         A C
C301      1420152000  1         B
C301      1420238100  3         A B C
C301      1420324500  5         A B C D E

私は長い関数を書きましたが、あまり効率的ではなく、非常に時間がかかります。巨大なデータ セット全体でスケーラブルである必要があります。事前に助けてくれてありがとう

4

1 に答える 1

1

meltfromreshape2との組み合わせを試すことができますaggregate。データセットを融解した後、と1によって集計に等しい値を分離します。を使用する列の変数を合計するには、アイテムのリストについては次のようにします。ServerEpochlengthtoString

library(reshape2)
m <- melt(df1, c("Server", "Epoch"))
aggregate(variable~Server+Epoch, m[m$value==1,], FUN=function(x) cbind(length(x), toString(x)))
# Server      Epoch variable.1    variable.2
# 1   C301 1420100400          2          A, C
# 2   C301 1420152000          1             B
# 3   C301 1420238100          3       A, B, C
# 4   C301 1420324500          5 A, B, C, D, E
于 2016-01-04T16:57:03.957 に答える