Arules, изолирующие lhs и rhs
Итак, вот пример:
library(arules)
data(Adult)
rules <- apriori(Adult,parameter = list(maxlen = 2,minlen=2))
inspect(head(rules,3))
lhs rhs support confidence lift
1 {relationship=Unmarried} => {capital-loss=None} 0.1019819 0.9719024 1.019537
2 {occupation=Sales} => {race=White} 0.1005282 0.8920785 1.043314
3 {occupation=Sales} => {native-country=United-States} 0.1039679 0.9226017 1.028055
Я хочу создать data.table с двумя столбцами, один из которых называется lhs, а другой rhs, где я сохранил значения lhs и rhs моих правил, например так:
lhs rhs
relationship=Unmarried capital-loss=None
occupation=Sales race=White
occupation=Sales native-country=United-States
Я бы поклялся, что сделал это однажды, начиная с a<-as.data.table(inspect(rules))
на окнах, но на моем Mac, который не работает... Что вы предлагаете?
2 ответа
Решение
Дано
library(arules)
library(data.table)
data(Adult)
rules <- apriori(Adult,parameter = list(maxlen = 2,minlen=2))
r <- head(rules,3)
Если as.data.table(inspect(r))
не работает (работает на моей машине, Win7 x64, R 3.2.2 & packageVersion("arules")
неоспоримым 1.3.0
), тогда, может быть, попробовать
f <- function(x, fun) unlist(as(fun(x), "list"))
( dt <- data.table(lhs=f(r, lhs), rhs=f(r, rhs)) )
# lhs rhs
# 1: relationship=Unmarried capital-loss=None
# 2: occupation=Sales race=White
# 3: occupation=Sales native-country=United-States
Так я и собирался это сделать...
library(arules)
data(Adult)
rules <- apriori(Adult,parameter = list(maxlen = 2,minlen=2))
data.frame(lhs = labels(lhs(rules), setStart = "", setEnd = ""),
rhs = labels(rhs(rules), setStart = "", setEnd = ""))