Подмножество объектов транзакций правил в соответствии с длиной транзакции

Кто-нибудь знает, как подмножить и arules объект транзакций в соответствии с длиной транзакции?

Например:

library(arules)
data(Adult)
summary(Adult)

Я хочу разделить Adult на разные объекты транзакций в зависимости от длины каждой транзакции.


person laiboonh    schedule 26.09.2012    source источник


Ответы (1)


Я рекомендую взглянуть на справку пакета в качестве первой остановки. 'help.start()'. Перейдите к пакетам и найдите время, чтобы увидеть, какие методы реализованы для пакета.

Потребовалась минута, чтобы обнаружить, что существуют реализации size() и subset() для объектов транзакций. Так что очень просто сделать то, что вы просите.

Вот как я это сделаю:

#you can get a vector of the sizes of the transactions:
sizes<-size(Adult)
#If you want to automate the sunsetting with a for loop 
#you can save which sizes are.
size.labels<-as.numeric(levels(as.factor(sizes)))
#Now you just need to use subset() function for 
#arules using size as condition. 
#Here few examples
Adult.subset<-subset(Adult,sizes==size.labels[1]) #this for using in a loop maybe?
Adult.subset.10<-subset(Adult,sizes==10)
...

Надеюсь, это поможет вам!

person E1000i    schedule 26.09.2012
comment
вау, спасибо, чувак, это очень помогает. Я не знал, что функция подмножества принимает размер в качестве критерия, это не упоминается в документации. - person laiboonh; 27.09.2012
comment
Если что-то запрашивает логический результат, вы можете поместить туда все, что хотите, если результатом является вектор логического значения того же размера, что и набор, который вы используете в любой функции R. Вопрос только в том, чтобы найти подходящее состояние ;) Здорово, что тебе помогли! - person E1000i; 27.09.2012