79 lines
2.5 KiB
R
79 lines
2.5 KiB
R
# Installing Packages
|
|
#install.packages('gridExtra')
|
|
#Run install.packages if you haven't installed it before (only once)
|
|
#install.packages("cluster")
|
|
#install.packages('ggplot2')
|
|
# Loading package
|
|
#library(ClusterR)
|
|
|
|
library(cluster)
|
|
library(gridExtra)
|
|
library(ggplot2)
|
|
library(grid)
|
|
library(arules)
|
|
library(RColorBrewer)
|
|
|
|
|
|
#library(cluster)
|
|
coul <- brewer.pal(5, "Set2")
|
|
|
|
#Read spreadsheet file
|
|
grocery_entries <- read.csv(file.choose())
|
|
|
|
|
|
#Compare cash and credit totals -Sewelam
|
|
|
|
cash_credit <- cbind(grocery_entries[3], grocery_entries[8])
|
|
sum_cash <-sum(cash_credit[which(cash_credit$paymentType=='Cash'),1])
|
|
sum_credit <-sum(cash_credit[which(cash_credit$paymentType=='Credit'),1])
|
|
CompCashCredit <- c(sum_cash,sum_credit)
|
|
barplot(CompCashCredit,names.arg = c('Cash','Credit'),horiz = TRUE,col = coul)
|
|
|
|
#City and Total Spent comparison -Jimmy
|
|
city_total <- cbind(grocery_entries[3], grocery_entries[7])
|
|
sum_cities<-aggregate(total ~city ,city_total,sum)
|
|
sum_citiesOrdered <- sum_cities[order(sum_cities$total),]
|
|
barplot(height = sum_citiesOrdered$total,names.arg = sum_citiesOrdered$city,col = coul,las=2)
|
|
|
|
|
|
|
|
#Compare between ages and their total spent (Youssri)
|
|
age <- cbind(grocery_entries[6] , grocery_entries[3])
|
|
sum_ages <- aggregate(total ~ age,age,sum)
|
|
pie(sum_ages$total,col = coul,labels = sum_ages$age,main = "Ages and total spent")
|
|
|
|
|
|
#Distribution of spending - Abdo
|
|
|
|
plot(grocery_entries$total, col = coul,type = "l", main = "spending")
|
|
|
|
#All in one dashboard
|
|
pdf(file = "graphs.pdf")
|
|
|
|
plot(grocery_entries$total, col = coul,type = "l", main = "spending")
|
|
pie(sum_ages$total,col = coul,labels = sum_ages$age,main = "Ages and total spent")
|
|
barplot(height = sum_citiesOrdered$total,names.arg = sum_citiesOrdered$city,col = coul,las=2)
|
|
barplot(CompCashCredit,names.arg = c('Cash','Credit'),horiz = TRUE,col = coul)
|
|
|
|
dev.off()
|
|
|
|
#kmeans --Yousri
|
|
name_total_age<-cbind(grocery_entries[5],grocery_entries[3],grocery_entries[6])
|
|
n<-as.numeric(readline("Enter number of clusters: "))
|
|
keameans<-cbind(grocery_entries[3],grocery_entries[6])
|
|
result<-kmeans(keameans,centers =n)
|
|
final_result<-cbind(name_total_age,result$cluster)
|
|
|
|
|
|
#Association Rules --Sewelam
|
|
clean_data <- grocery_entries[,-5] #remove names
|
|
minsup <- as.numeric(readline("Enter minimum support: "))
|
|
minconf <- as.numeric(readline("Enter minimum confidence: "))
|
|
asoc_rules <- apriori(clean_data,parameter = list(supp = minsup,conf = minconf))
|
|
asociation_rules <- inspect(asoc_rules)
|
|
write.csv(as(asoc_rules,"data.frame"),file = "Output.csv")
|
|
|
|
|
|
|
|
|