2017-03-16 5 views
1

私は次のようにして、Rでapirioriアルゴリズムを実行することによって生成されたルールをサブセット化したいと考えています。Rのサブセットarules R

ルールのサブセットには、別のリスト内のいずれかのアイテム(項目など)しか持たないLHSが必要です。 RHSには制約は適用されません。

は、私は、次のコードを試してみましたが、私は期待通りの結果を得ることができませんでした:

> library(arules) 
> library(datasets) 
> data(Groceries) 
> rules <- apriori(Groceries, parameter = list(supp = 0.001, conf = 0.8)) 
inspect(head(rules)) 
    lhs         rhs   support  confidence lift  
[1] {liquor,red/blush wine}   => {bottled beer} 0.001931876 0.9047619 11.235269 
[2] {curd,cereals}     => {whole milk} 0.001016777 0.9090909 3.557863 
[3] {yogurt,cereals}     => {whole milk} 0.001728521 0.8095238 3.168192 
[4] {butter,jam}      => {whole milk} 0.001016777 0.8333333 3.261374 
[5] {soups,bottled beer}    => {whole milk} 0.001118454 0.9166667 3.587512 
[6] {napkins,house keeping products} => {whole milk} 0.001321810 0.8125000 3.179840 

items = c("curd","cereals") 
rules.subset2 <- subset(rules, subset = all(lhs %in% items)) 

このサブ設定操作の結果では、私が唯一の「豆腐や穀物を持ちたいので、間違っている(以下"LHSとしてのルールサブセット)

inspect(head(rules.subset2)) 
      lhs                   rhs    support  confidence lift  
    [1] {liquor,red/blush wine}             => {bottled beer}  0.001931876 0.9047619 11.235269 
    [2] {curd,cereals}                => {whole milk}  0.001016777 0.9090909 3.557863 
    [3] {yogurt,cereals}               => {whole milk}  0.001728521 0.8095238 3.168192 
    [4] {butter,jam}                => {whole milk}  0.001016777 0.8333333 3.261374 
    [5] {soups,bottled beer}              => {whole milk}  0.001118454 0.9166667 3.587512 
    [6] {napkins,house keeping products}           => {whole milk}  0.001321810 0.8125000 3.179840 

私はこのウェブサイトで回答を見つけようとしましたが、運がありませんでした。私も様々な方法を試しましたが、成功しませんでした。

お手数ですが、よろしくお願いいたします。

私はこの試みたとき、それが働いた

答えて

1

rules.subset2 <- subset(rules, lhs %in% c("cereals", "curd"))

同時にLHSで "穀物" と "豆腐" を含むように

マルチステップを:

sub_2<- subset(rules, lhs %in% "cereals")
sub_3<- subset(sub_2, lhs %in% "curd")

+0

ありがとう@jiayao。これは、LHSの項目の少なくとも1つを持つすべての規則を与えます。 'hs rhs support confidence [1] {curd、cereals} => {whole milk} 0.001016777 0.9090909 [2] {ヨーグルト、シリアル} => {whole milk} 0.001728521 0.8095238 [3] {七面鳥、カード} => {他の野菜} 0.001220132 0.8000000'。しかし、私は "アイテム"ベクトルの項目だけを持っているルールを得るためにRコマンドが必要です – sri

+0

ああ、あなたは同時にlhsに "穀物"と "カード"が必要です。私はrstudioで少し演奏しましたが、これを1行で行う方法は分かりませんでしたが、複数のステップでこれを行うことができると思います。 'sub_2 < - サブセット(規則、lhs%in%"穀物 ")' sub_3 < - サブセット(sub_2、lhs%in curd) '私はグーグルグーグルをし続けます。 –

0

私はオペレータが%ain%なので、それでいいと思います。

lhs %oin% c('cereals', 'curd') 
関連する問題