как конвертировать data.frame в транзакции для arules
41223 просмотра
3 ответа
Я читаю данные из CSV-файла, данные имеют 3 столбца, один - идентификатор транзакции, два других - продукт и категория продукта. Мне нужно преобразовать это в транзакции, чтобы использовать apriori
функцию в arules . При конвертации в транзакции отображается ошибка:
dat <- read.csv("spss.csv",head=TRUE,sep="," , as.is = T)
dat[,2] <- factor(dat[,2])
dat[,3] <- factor(dat[,3])
spssdat <- dat[,c(1,2,3)]
str(spssdat)
'data.frame': 108919 obs. of 3 variables:
$ Transaction_id: int 3000312 3000312 3001972 3003361 3003361 3003361 3003361 3003361 3003361 3004637 ...
$ product_catalog : Factor w/ 9 levels "AIM","BA","IM",..: 1 1 5 7 7 7 7 7 7 1 ...
$ product : Factor w/ 332 levels "ACM","ACTG/AIM",..: 7 7 159 61 61 61 61 61 61 7 ...
trans4 <- as(spssdat, "transactions")
Error in as(spssdat, "transactions") :
no method or default for coercing “data.frame” to “transactions”
Если данные имеют только два столбца, они могут работать:
trans4 <- as(split(spssdat[,2], spssdat[,1]), "transactions")
Но я не знаю, как конвертировать, когда у меня есть 3 столбца. Обычно есть дополнительные столбцы, такие как атрибуты категорий, атрибуты клиентов. поэтому столбец обычно больше 2 столбцов. нужно найти правила между несколькими столбцами.
Автор: dennis ding Источник Размещён: 12.11.2019 09:38Ответы (3)
21 плюса
Я нашел некоторую информацию, которая работала для меня на этом сайте . Позвольте мне скопировать соответствующий пункт:
Кадр данных может быть либо в нормализованной ( одиночной ) форме, либо в виде плоского файла ( корзины ).
Когда файл находится в форме корзины, это означает, что каждая запись представляет транзакцию, в которой элементы в корзине представлены столбцами.
Когда набор данных находится в одной форме, это означает, что каждая запись представляет один отдельный элемент, и каждый элемент содержит идентификатор транзакции .
Чтобы загрузить транзакции из файла, используйте read.transactions
. И в вашем, и в моем деле дело в единой форме.
Я использовал следующий код для загрузки файла .csv как transactions
:
trans = read.transactions("some_data.csv", format = "single", sep = ",", cols = c("transactionID", "productID"))
Чтобы полностью понять вышеуказанную команду, взгляните на read.transactions
руководство, доступное после ввода ?read.transactions
в консоли R.
4 плюса
Я пытался сделать то же самое, и после того, как я учел все свои столбцы в data.frame, с которым я работал, я все еще не мог привести его к itemMatrix транзакций. Затем я понял, что никогда не перезагружал пакет «arules» для сеанса, в котором я работал. Очень глупая ошибка, но я просто хотел упомянуть об этом на случай, если кто-то столкнется с той же проблемой, попробуйте сначала простые вещи:
library("arules")
Автор: Charlie
Размещён: 17.02.2015 02:15
0 плюса
Вы должны сначала преобразовать Transaction_id в факторную переменную.
Автор: Farmer Bob Размещён: 26.08.2013 08:05Вопросы из категории :
- r Как получить доступ к последнему значению в векторе?
- r Пакеты оптимизации для R
- r Есть ли у R такие операторские операции, как Perl qw ()?
- r Библиотека / инструмент для рисования тройных / треугольных графиков
- r Участки без заголовков / надписей в R
- transactions Когда транзакции становятся больше бременем, чем выгодой?
- transactions Транзакции в .net
- transactions Grails, вставка большого количества данных с использованием результатов withTransaction в OutOfMemoryError
- transactions Будет ли оператор using откатывать транзакцию базы данных в случае возникновения ошибки?
- transactions В Python, используя pyodbc, как выполнять транзакции?
- attributes Каковы лучшие практики использования атрибутов сборки?
- attributes Атрибут InternalsVisibleTo не работает
- attributes Can you use "where" to require an attribute in c#?
- attributes Как вы программно устанавливаете атрибут?
- attributes Может ли класс C # наследовать атрибуты из своего интерфейса?
- arules Невозможно преобразовать фрейм данных в объект транзакций
- arules как конвертировать data.frame в транзакции для arules
- arules Загрузите набор данных в R с помощью data (), используя вместо имени набора данных переменную
- arules установка пакетов для arules в R
- arules использование пакета arulesSequence: ошибка в makebin (данные, файл): недопустимый sid