Создание транзакций из нескольких векторов в R - PullRequest
0 голосов
/ 01 января 2019

Предположим, у меня есть несколько векторов, таких как

v1 <- c(1:10)
v2 <- c(1:23)
v3 <- c(10:40)

Я хочу преобразовать эти векторы в один объект транзакции.Как мне это сделать?Я искал некоторые в Интернете, но я нахожу только способы преобразования фреймов данных, таблиц данных в транзакции.Кроме того, эти векторы v1, v2 и v3 предназначены для объяснения вопроса.На самом деле, данные создаются скриптом Python и состоят из нескольких наборов различной длины.Я не знаю эффективного способа хранения этих данных в R и преобразования их в транзакции.После преобразования их в транзакции я планирую запустить apriori для майнинга правил ассоциации.

1 Ответ

0 голосов
/ 01 января 2019

Читая пакет arules о том, как создать объект класса транзакции (pdf страницы 91/92 или ?transactions), вы можете просто преобразовать объект списка в класс транзакции.

Итак, сначала вам нужно собрать все свои векторы в список, что можно сделать так:

var_names <- ls(envir = globalenv(), pattern = "^v[[:digit:]]+")
my_list <- mget(var_names, envir = globalenv())

Затем переименуйте имена списков в транзакции:

names(my_list) <- paste("Tr", seq_along(my_list), sep = "")

И, наконец, приведите список к объекту класса транзакции:

library(arules)
trans1 <- as(my_list, "transactions")

trans1
transactions in sparse format with
 3 transactions (rows) and
 40 items (columns)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...