2015-11-22 2 views
0

У меня есть большой набор данных (матрица 0s и 1s) с 20 переменными (каждая переменная является элементом) и около 100 строк (каждая строка является транзакцией). Я использую пакет «arules» в R для разработки правил ассоциации.R package arules Выберите правила, в которых все rhs = 1 и все lhs = 1

Меня интересуют только правила с rhs = 1 и lhs = 1 (я имею в виду, что все элементы должны быть истинными, если я хочу использовать данные позже). Я не знаю, как выбирать или классифицировать свои правила, чтобы сохранить только те правила, которые мне нужны.

Например с моими данными:

{hautvert=1,basintermediaire=1} => {basvert=1} 0.1190476 1.0000000 4.941176 
1235 {hautlarge=1,basbleu=0}   => {basvert=1} 0.1309524 0.9166667 4.529412 
1274 {hautvert=1,basblanc=0}   => {basvert=1} 0.2023810 0.8947368 4.421053 
1808 {hautlarge=1,pantalon=1}   => {baslarge=1} 0.1071429 1.0000000 4.421053 
1811 {hautbleu=1,hautlarge=1}   => {baslarge=1} 0.1071429 1.0000000 4.421053 
1889 {basbleu=1,pantalon=1}   => {baslarge=1} 0.1071429 1.0000000 4.421053 
2261 {hautintermediaire=1,pantalon=1} => {basblanc=1} 0.1428571 1.0000000 4.200000 
2291 {basserre=1,pantalon=1}   => {basblanc=1} 0.1428571 1.0000000 4.200000 
2294 {hautbleu=0,pantalon=1}   => {basblanc=1} 0.1428571 1.0000000 4.200000 
1256 {hautvert=1,basserre=0}   => {basvert=1} 0.2023810 0.8095238 4.000000 

мне нужно иметь только такие правила, как в первой строке, где оба элемента является равно 1 на LHS и где правая часть также равна 1.

Большое спасибо за помощь.

+0

Добро пожаловать на SO. Чтобы сделать его проще для всех, вы всегда должны предоставлять воспроизводимый пример. – lukeA

+0

Хорошо, спасибо за ваш совет, который я редактирую. – Stan

+0

Воспроизводимый пример - пример того, что любой может копировать, вставлять и запускать. Как и в моем ответе. Однако, в отличие от данных, которые вы предоставили. – lukeA

ответ

0

Посмотрите ?arules::subset, ?`%pin%` и ?apriori (minlen в разделе детали):

library(arules) 
data("Adult") 
rules <- apriori(Adult, parameter = list(minlen = 2)) 
rules.sub <- subset(rules, subset = lhs %pin% "relationship" & rhs %pin% "sex" & lift > 1.4 & support > 0.4) 
as(rules.sub, "data.frame") 
#                  rules support confidence  lift 
# 80         {relationship=Husband} => {sex=Male} 0.4036485 0.9999493 1.495851 
# 550 {marital-status=Married-civ-spouse,relationship=Husband} => {sex=Male} 0.4034028 0.9999492 1.495851 
+0

Большое спасибо за ваш ответ. Я уже изучил это, но этого недостаточно, чтобы решить мою проблему. Я постараюсь сделать свой ответ более конкретным. Меня интересуют все правила со всеми столбцами и всеми наборами элементов, но только если значение равно 1. У вас есть некоторые варианты, которые позволяют мне это делать. – Stan

+0

Возможно, что-то вроде 'rules [sapply (as (items (rules)," list "), function (x) all (grepl (" = 1 $ ", x)))]'? – lukeA

+0

Извините, что ответился поздно, у меня была проблема с программным обеспечением! Это очень хорошо благодарит вас! – Stan

 Смежные вопросы

  • Нет связанных вопросов^_^