R вывод write.csv2 с пустой строкой - PullRequest
1 голос
/ 26 марта 2020

Я пытаюсь применить алгоритм apriori к набору данных (CSV), который работает нормально. После прочтения транзакций и применения apriori я вижу результаты.

Пример входного файла:

transactionid;article
21-348;JG78NF7
42-357;ALL0001
89-786;110845466
...

Но после записи в CSV это то, что осталось в моем файле output.csv:

""

Установленные параметры: поддержка = 0,0001, достоверность = 0,1 Когда я увеличиваю поддержку до 0,001, мой выходной CSV фактически показывает несколько строк. Я думал, что это проблема с оперативной памятью, но это не так. Ниже мой код.

#!/usr/bin/env Rscript
# load arules library
library(arules)

# read csv file
data <- read.transactions(file='input.csv', format='single', sep=';', cols=1:2)
#summary(data)

#create apriori rules
rules <- apriori(data, parameter=list(support=0.0001, confidence=0.1))
#summary(rules)

#inspect(sort(rules, by='confidence'))
write.csv2(inspect(rules), file='output.csv')

Там нет сообщения об ошибке или что-нибудь. Выполнение с флагом --verbose не показывает сообщение об ошибке. Может быть, у кого-то есть идея.

Характеристики:
MacOSX Catalina 10.15.4
R Язык (установлен через Homebrew) 3.6.3_1
версия brew 2.2.11

1 Ответ

1 голос
/ 26 марта 2020

Функция inspect() печатает только, поэтому, если вы хотите получить информацию, например, lhs и rhs, вы можете перейти по по этой ссылке или попробовать что-то ниже, что даст некоторую необходимую вам информацию:

library(arules)
data("Adult")
rules <- apriori(Adult, 
parameter = list(supp = 0.5, conf = 0.9, target = "rules"))

out = data.frame(
lhs=labels(lhs(rules)),
rhs=labels(rhs(rules)),
support = quality(rules)$support,
count=quality(rules)$count)

write.csv(out....)
...