Power BI - R 脚本视觉 - Apriori
Power BI - R Script Visual - Apriori
我在 PowerBI 中使用 r 脚本可视化。我可以在 R 中 运行 下面的代码并且它可以工作,但是在 PowerBI 中 运行ning 时我得到下面的错误。我想以视觉方式展示 apriori 的结果。 运行 以下的两个测试在 R 中都很好,但在 PowerBI 的 R 脚本可视化中却不行。有什么想法吗?
如果我尝试#test2。
library(Matrix)
library(arules)
library(plyr)
library(gridExtra)
df_itemList <- ddply(dataset,c("SALESID"),function(df1)paste(df1$ITEMID))
#test1
#df_itemList = sapply(df_itemList , function(x) gsub(" ", ",", x))
#basket_rules <- apriori(df_itemList, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
#test2
txn = read.transactions(df_itemList, rm.duplicates = TRUE, format = "basket", sep = ",", cols = 1);
basket_rules <- apriori(txn, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
df_basket <- as(basket_rules,"data.frame")
grid.table(df_basket)
错误信息:
R 脚本错误。
附加包:'arules'
'package:base'屏蔽了以下对象:
abbreviate, write
readLines(file, encoding = encoding) 错误:'con' 不是连接
调用:read.transactions -> lapply -> readLines
执行暂停
如果我尝试#test1...
library(Matrix)
library(arules)
library(plyr)
library(gridExtra)
df_itemList <- ddply(dataset,c("SALESID"),function(df1)paste(df1$ITEMID))
#test1
df_itemList = sapply(df_itemList , function(x) gsub(" ", ",", x))
basket_rules <- apriori(df_itemList, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
#test2
#txn = read.transactions(df_itemList, rm.duplicates = TRUE, format = "basket", sep = ",", cols = 1);
#basket_rules <- apriori(txn, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
df_basket <- as(basket_rules,"data.frame")
grid.table(df_basket)
然后我得到下面的错误。
错误信息:
R 脚本错误。
附加包:'arules'
'package:base'屏蔽了以下对象:
abbreviate, write
asMethod(object) 错误:
第 2、3、4 列不符合逻辑或因素。首先将列离散化。
调用:apriori -> as -> asMethod
执行暂停
在 PowerBI R 脚本中使用 read.transactions 的正确方法是将数据帧转换为矩阵,然后转换为事务 class。这是为了绕过导出到 csv,然后读回 read.transactions...参考 here
library(Matrix)
library(arules)
library(plyr)
library(dplyr)
library(gridExtra)
itemList <- dataset
#itemList <- read.csv("ItemListAll.csv", header=TRUE, sep=",")
# Converting to a Matrix ####
itemList$const = TRUE
# Remove duplicates
dim(itemList)
orders <- unique(itemList)
dim(itemList)
# Need to reshape the matrix
itemList_max_prep <- reshape(data = itemList,
idvar = "SALESID",
timevar = "ITEMID",
direction = "wide")
# Drop the SALESID
itemList_matrix <- as.matrix(itemList_max_prep[,-1])
# Clean up the missing values to be FALSE
itemList_matrix[is.na(itemList_matrix)] <- FALSE
# Clean up names
colnames(itemList_matrix) <- gsub(x=colnames(itemList_matrix),
pattern="const\.", replacement="")
itemList_trans <- as(itemList_matrix,"transactions")
#inspect(itemList_trans)
basket_rules <- apriori(itemList_trans, parameter = list(sup=0.01,conf=0.5,target="rules", minlen=3));
df_basket <- as(basket_rules,"data.frame")
df_basket$support <- ceiling(df_basket$support * 100)
df_basket$confidence<- ceiling(df_basket$confidence * 100)
df_basket$lift<- round(df_basket$lift, digits = 2)
df_basket <- df_basket[rev(order(df_basket$support)),];
grid.table(head(df_basket));
我在 PowerBI 中使用 r 脚本可视化。我可以在 R 中 运行 下面的代码并且它可以工作,但是在 PowerBI 中 运行ning 时我得到下面的错误。我想以视觉方式展示 apriori 的结果。 运行 以下的两个测试在 R 中都很好,但在 PowerBI 的 R 脚本可视化中却不行。有什么想法吗?
如果我尝试#test2。
library(Matrix)
library(arules)
library(plyr)
library(gridExtra)
df_itemList <- ddply(dataset,c("SALESID"),function(df1)paste(df1$ITEMID))
#test1
#df_itemList = sapply(df_itemList , function(x) gsub(" ", ",", x))
#basket_rules <- apriori(df_itemList, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
#test2
txn = read.transactions(df_itemList, rm.duplicates = TRUE, format = "basket", sep = ",", cols = 1);
basket_rules <- apriori(txn, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
df_basket <- as(basket_rules,"data.frame")
grid.table(df_basket)
错误信息: R 脚本错误。
附加包:'arules'
'package:base'屏蔽了以下对象:
abbreviate, write
readLines(file, encoding = encoding) 错误:'con' 不是连接 调用:read.transactions -> lapply -> readLines 执行暂停
如果我尝试#test1...
library(Matrix)
library(arules)
library(plyr)
library(gridExtra)
df_itemList <- ddply(dataset,c("SALESID"),function(df1)paste(df1$ITEMID))
#test1
df_itemList = sapply(df_itemList , function(x) gsub(" ", ",", x))
basket_rules <- apriori(df_itemList, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
#test2
#txn = read.transactions(df_itemList, rm.duplicates = TRUE, format = "basket", sep = ",", cols = 1);
#basket_rules <- apriori(txn, parameter = list(sup=0.1,conf=0.5,target="rules", maxlen=5));
df_basket <- as(basket_rules,"data.frame")
grid.table(df_basket)
然后我得到下面的错误。
错误信息: R 脚本错误。
附加包:'arules'
'package:base'屏蔽了以下对象:
abbreviate, write
asMethod(object) 错误: 第 2、3、4 列不符合逻辑或因素。首先将列离散化。 调用:apriori -> as -> asMethod 执行暂停
在 PowerBI R 脚本中使用 read.transactions 的正确方法是将数据帧转换为矩阵,然后转换为事务 class。这是为了绕过导出到 csv,然后读回 read.transactions...参考 here
library(Matrix)
library(arules)
library(plyr)
library(dplyr)
library(gridExtra)
itemList <- dataset
#itemList <- read.csv("ItemListAll.csv", header=TRUE, sep=",")
# Converting to a Matrix ####
itemList$const = TRUE
# Remove duplicates
dim(itemList)
orders <- unique(itemList)
dim(itemList)
# Need to reshape the matrix
itemList_max_prep <- reshape(data = itemList,
idvar = "SALESID",
timevar = "ITEMID",
direction = "wide")
# Drop the SALESID
itemList_matrix <- as.matrix(itemList_max_prep[,-1])
# Clean up the missing values to be FALSE
itemList_matrix[is.na(itemList_matrix)] <- FALSE
# Clean up names
colnames(itemList_matrix) <- gsub(x=colnames(itemList_matrix),
pattern="const\.", replacement="")
itemList_trans <- as(itemList_matrix,"transactions")
#inspect(itemList_trans)
basket_rules <- apriori(itemList_trans, parameter = list(sup=0.01,conf=0.5,target="rules", minlen=3));
df_basket <- as(basket_rules,"data.frame")
df_basket$support <- ceiling(df_basket$support * 100)
df_basket$confidence<- ceiling(df_basket$confidence * 100)
df_basket$lift<- round(df_basket$lift, digits = 2)
df_basket <- df_basket[rev(order(df_basket$support)),];
grid.table(head(df_basket));