首页
学习
活动
专区
圈层
工具
发布

Power脚本
EN

Stack Overflow用户
提问于 2018-10-29 16:35:48
回答 1查看 482关注 0票数 0

我在PowerBI中使用r脚本可视化。我可以在R中运行下面的代码,它可以工作,但是在PowerBI中运行时,我会得到下面的错误。我想在视觉上显示来自先验的结果。下面的两个测试在R中运行都很好,但在来自PowerBI的R脚本可视化中却不能运行。有什么想法吗?

如果我尝试#test2。

代码语言:javascript
复制
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”中:

代码语言:javascript
复制
abbreviate, write

readLines中的错误(文件,编码=编码):“con”不是连接调用: read.transactions -> lapply -> readLines执行已停止

如果我尝试测试1..。

代码语言:javascript
复制
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”中:

代码语言:javascript
复制
abbreviate, write

asMethod(object)中的错误:列2、3、4不符合逻辑或因素。先分解列。调用: apriori ->,因为-> asMethod执行停止

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-29 17:54:46

在read.transactions R脚本中使用PowerBI的正确方法是将数据转换为矩阵,然后转换为事务类。这是通过将导出传递给csv,然后将其读入到read.transactions.参考这里

代码语言:javascript
复制
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));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53050022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档