0

次の形式のデータがあります。

CIN TRN_TYP
9079954 1
9079954 2
9079954 3
9079954 4
9079954 5
9079954 4
9079954 5
9079954 6
9079954 7
9079954 8
9079954 9
9079954 9
.         .
.         .
.         .

CIN(9079954,12441087,15246633,...)の 100 種類があり、それぞれTRN_TYP

まず、このデータをバスケット形式にグループ化します。

9079954   1, 2, 3, 4, 5, ....
12441087  19, 14, 21, 3, 7, ...
.
.
.

その後、パッケージから適用eclatarulesて、頻繁なパターンを見つけます。

助けてください

4

1 に答える 1

2

出力として何を使用したいかは明確ではありません。基本関数で、または、などのplyr外部パッケージを使用して、結果を集約するための多くのオプションがあります。datatable

ここに関数を使用するオプションがありますby

by(tab,tab$CIN,FUN=function(x) unlist(x$TRN_TYP))
tab$CIN: 9079954
 [1] 1 2 3 4 5 4 5 6 7 8 9
-----------------------------------------
tab$CIN: 9079955
[1] 11 12 13 14 15 16 17 18 19

編集

適用eclatするには、最初に重複したアイテムを削除する必要があります。

tab <- tab[!duplicated(tab),]
eclat(split(tab$TRN_TYP,tab$CIN))  ## here I am using  @Arun solution because 
                                   ## it seems that it can't coerce by output

parameter specification:
 tidLists support minlen maxlen            target   ext
    FALSE     0.1      1     10 frequent itemsets FALSE

algorithmic control:
 sparse sort verbose
      7   -2    TRUE

Warning in eclat(split(tab$TRN_TYP, tab$CIN)) :
  You chose a very low absolute support count of 0. You might run out of memory! Increase minimum support.

eclat - find frequent item sets with the eclat algorithm
version 2.6 (2004.08.16)         (c) 2002-2004   Christian Borgelt
create itemset ... 
set transactions ...[18 item(s), 2 transaction(s)] done [0.00s].
sorting and recoding items ... [18 item(s)] done [0.00s].
creating bit matrix ... [18 row(s), 2 column(s)] done [0.00s].
writing  ... [1022 set(s)] done [0.00s].
Creating S4 object  ... done [0.00s].
set of 1022 itemsets 
于 2013-03-08T11:16:03.223 に答える