R Как загрузить разреженные данные для пакета arules

У меня есть CSV с текстовыми данными, похожими на:

citrus fruit,semi-finished bread,margarine,ready soups
tropical fruit,yogurt,coffee
whole milk
pip fruit,yogurt,cream cheese ,meat spreads
other vegetables,whole milk,condensed milk,long life bakery product
whole milk,butter,yogurt,rice,abrasive cleaner

Я хочу загрузить это в форму разреженной транзакции, как лучше всего это сделать? я хочу иметь возможность использовать на нем пакет arules


person shecode    schedule 15.01.2015    source источник


Ответы (1)


Вы можете использовать readLines, затем strsplit, а затем принудить к объекту transactions arules

tran <- readLines("transactions.csv")      # read all lines
tran <- strsplit(tran, ",", fixed=TRUE)    # split each line by commas, returns a list

library(arules)
tran <- as(tran, Class =  "transactions")            # coerce to transaction object
rules <- apriori(tran, parameter=list(support=0.1))   # etc
inspect(rules[1])
person Miguel Manese    schedule 16.01.2015
comment
Можно ли это сделать, когда у меня уже есть данные в виде кадра данных? т.е. я сделал некоторую предварительную обработку данных и теперь хочу принудить к объекту транзакции - person shecode; 19.01.2015
comment
Кажется, он разбит на один список, я хотел бы список на строку - person shecode; 19.01.2015
comment
Вы сохранили его в длинном формате? Нравится data.frame(tran.id=c(1,1,2,2,2), item=c("citrus","fruit","yogurt","coffee","milk")) ? Если да, см. пример в ?read.transactions для format="single" - person Miguel Manese; 19.01.2015
comment
привет. Нет, это не длинный формат, он выглядит именно так, как показано выше, каждая новая строка - это новая строка. - person shecode; 19.01.2015
comment
Если вы можете предоставить код, используемый для обработки файла, мы сможем увидеть, как преобразовать его в формат, ожидаемый правилами. - person Miguel Manese; 20.01.2015