Я пытаюсь выполнить априорный анализ в R, но так как я буду выполнять это в другой среде, я должен сделать это без функции «read.transactions» (потому что для этого требуется взять данные из файла, который я могу не делать в этом примере). Другими словами - мне приходится работать со столбцами, которые у меня уже есть, без связи с каким-либо файлом.
Итак, вот пример, который я написал, чтобы показать Вам мою проблему:
test <- data.frame(c(1, 2, 3, 4, 5), c("1, 2, 3", "2, 4", "1, 5, 2", "4, 1", "2, 3, 4, 5"))
colnames(test) <- c("TransactionID", "items")
test$TransactionID <- as.factor(test$TransactionID)
rules <- as(split(as.vector(test[,2]),as.vector(test[,1])), "transactions")
tkoszyk <- apriori(rules, parameter=list(minlen=2, sup=0.1, conf=0.1, target="rules"))
inspect(tkoszyk)
Итак, проблема в том, что эта функция неправильно читает мой вектор элементов. Это вывод:
lhs rhs support confidence lift count
[1] {} => {1, 2, 3} 0.2 0.2 1 1
[2] {} => {2, 4} 0.2 0.2 1 1
[3] {} => {1, 5, 2} 0.2 0.2 1 1
[4] {} => {4, 1} 0.2 0.2 1 1
[5] {} => {2, 3, 4, 5} 0.2 0.2 1 1
Так что, в основном, вместо того, чтобы создавать список элементов вроде этого:
"1" "2" "3" "4" "5"
делает список предметов таким:
"1, 2, 3" "1, 5, 2" "2, 3, 4, 5" "2, 4" "4, 1"
Во время моего исследования в этой теме я узнал, что проблема здесь в кавычках . Просто для того, чтобы попробовать, я сделал этот пример в R с использованием read.transactions, и когда я пометил аргумент «quote» как FALSE, он начал работать правильно. Но еще раз, так как я не могу использовать read.transaction. Я не знаю, как справиться с этой проблемой.
Конечно, эти данные являются только примером, поэтому в моих реальных данных я не могу их так легко изменить, я должен сделать это с использованием некоторого кода R, без использования файлов.
Я думаю, что лучшая идея, которую я имел, была попытка с
capture.output(cat(test$items))
Но все равно я не могу заставить его работать.
Буду признателен за любую помощь, я уже безнадежно.