Market Basket Analysis
Market Basket Analysis
Executive Summary
Introduction
Danielle has asked the team to perform a market basket analysis to help Blackwell’s board of directors better understand the clientele that Electronidex is currently serving and if Electronidex would be an optimal acquisition.
A dataset of transactions has been provided. The dataset contains 9835 transactions and 125 different products over a 30-day period, or about 327 transactions a day. This tells us the retailer is neither large, nor small.
Results, conclusions and recommendations
After the analysis, we conclude Electronidex’s sales are to be categorized in two forms: retail (B2C) and corporate (B2B). Had we had this information previous to our analysis, it would have saved time in the exploration phase. Interesting patterns and item relationships found:
Retail by products:
| lhs | Var.2 | rhs |
|---|---|---|
| {Samsung Monitor} | => | {CYBERPOWER Gamer Desktop} |
| {CYBERPOWER Gamer Desktop} | => | {Apple Earpods} |
| {Apple Earpods} | => | {CYBERPOWER Gamer Desktop} |
Retail by category:
| lhs | Var.2 | rhs | |
|---|---|---|---|
| 4 | {Accessories,Keyboard} | => | {Desktop} |
| 5 | {Accessories,Keyboard} | => | {Desktop} |
| 6 | {Computer Cords,Mouse and Keyboard Combo} | => | {Laptops} |
Corporate by products:
| lhs | Var.2 | rhs | |
|---|---|---|---|
| 7 | {HP Laptop} | => | {iMac} |
| 8 | {ViewSonic Monitor} | => | {iMac} |
| 9 | {iMac} | => | {HP Laptop} |
Corporate by categories:
| lhs | Var.2 | rhs | |
|---|---|---|---|
| 10 | {Laptops} | => | {Desktop} |
| 11 | {Laptops,Monitors} | => | {Desktop} |
| 12 | {Desktop} | => | {Laptops} |
Would Blackwell benefit in selling Electronidex’s items? As a conclusion, we do recommend that Blackwell acquires Electronidex for the following reasons:
Product portfolio diversification and customer base expansion: Having previously analyzed the current products that Blackwell supplies to its customers, we believe that new product categories will help reach new customers. Additionally, all clients acquired with Eltronidex will become part of Blackwell’s customer base. The combination of diversifaction and expansion will consequentially increase Blackwell’s revenue.
Beneficial Product Association: Since Blackwell currently works with close to 50% of brands shared by Electronidex; Blackwell can take advantage of the discovered associations. This will imply the average amount of Blackwell’s items per transaction will be increased.
New potential strategies to adopt by Blackwell’s sales team: The aforementioned results opens new marketing possibilities. Extracting the associations with high confidence and low support (sold less often), it is possible to boost sales for those products (through advertisement and other sales actions). The increase in sales number of the said products will bring in increased revenue since we are confident the new transactions will increase sales volume. Blackwell could create some item packs of those items that are more often purchased at the same transaction, in order to also increase sales volume. Additionally, the rules that we found can be also helpful to provide recommendations to users when they purchase through the e-commerce platorm.
Limitations and observations:
Properties of the dataset:
- The iMac is the product most bought, in 20% of all transactions. This high number stands out considering the large variety of products, especially being the iMac a pricey product. If this number is representative of all sales throughout the year, then Electronidex is potentially profitable.
- The mean of items bought per transaction is almost 5. Logically, we would say most people in the real world would buy 1 or 2 items per transactions most frequently, in an eletronics store.
Technical Report
Loading Packages and importing datasets
pacman::p_load(readr, rstudioapi, ggplot2, party, dplyr, arules, arulesViz,
RColorBrewer, readxl, tidyr, Hmisc)
setwd("..")
trans <- read.transactions("./Datasets/ElectronidexTransactions2017.csv", format = "basket",
sep = ",", rm.duplicates = TRUE)
labels <- read_excel("./Datasets/ElectronidexItems2017.xlsx")
results <- read.csv("./Datasets/results.csv")Preprocessing
transactions as itemMatrix in sparse format with
9835 rows (elements/itemsets/transactions) and
125 columns (items) and a density of 0.03506172
most frequent items:
iMac HP Laptop CYBERPOWER Gamer Desktop
2519 1909 1809
Apple Earpods Apple MacBook Air (Other)
1715 1530 33622
element (itemset/transaction) length distribution:
sizes
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
2 2163 1647 1294 1021 856 646 540 439 353 247 171 119 77 72
15 16 17 18 19 20 21 22 23 25 26 27 29 30
56 41 26 20 10 10 10 5 3 1 1 3 1 1
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000 2.000 3.000 4.383 6.000 30.000
includes extended item information - examples:
labels
1 1TB Portable External Hard Drive
2 2TB Portable External Hard Drive
3 3-Button Mouse
Feature Engineering
# Counting number of items
nitems <- c()
for (i in 1:nrow(trans_df)) {
nitems <- c(nitems, sum(trans_df[i, ]))
}
trans_df$nitems <- nitems
trans_df$laptops <- trans_df[, which(colnames(trans_df) == "LG Touchscreen Laptop")] +
trans_df[, which(colnames(trans_df) == "Acer Aspire")] +
trans_df[, which(colnames(trans_df) == "HP Laptop")] + trans_df[, which(colnames(trans_df) ==
"ASUS Chromebook")] + trans_df[, which(colnames(trans_df) == "Apple Macbook Pro")] +
trans_df[, which(colnames(trans_df) == "Apple MacBook Air")] + trans_df[,
which(colnames(trans_df) == "Dell Laptop")] + trans_df[, which(colnames(trans_df) ==
"Eluktronics Pro Gaming Laptop")] + trans_df[, which(colnames(trans_df) ==
"Alienware AW17R4-7345SLV-PUS 17\" Laptop")] + trans_df[, which(colnames(trans_df) ==
"HP Notebook Touchscreen Laptop PC")]
trans_df$desktop <- trans_df[, which(colnames(trans_df) == "Lenovo Desktop Computer")] +
trans_df[, which(colnames(trans_df) == "iMac")] + trans_df[, which(colnames(trans_df) ==
"HP Desktop")] + trans_df[, which(colnames(trans_df) == "ASUS Desktop")] +
trans_df[, which(colnames(trans_df) == "Dell Desktop")] + trans_df[, which(colnames(trans_df) ==
"Intel Desktop")] + trans_df[, which(colnames(trans_df) == "Acer Desktop")] +
trans_df[, which(colnames(trans_df) == "CYBERPOWER Gamer Desktop")] + trans_df[,
which(colnames(trans_df) == "Dell 2 Desktop")]
trans_df$tablet <- trans_df[, which(colnames(trans_df) == "iPad")] + trans_df[,
which(colnames(trans_df) == "iPad Pro")] + trans_df[, which(colnames(trans_df) ==
"Fire HD Tablet")] + trans_df[, which(colnames(trans_df) == "Samsung Galaxy Tab")] +
trans_df[, which(colnames(trans_df) == "Kindle")]
trans_df$printer <- trans_df$`Epson Printer` + trans_df$`HP Wireless Printer` +
trans_df$`Canon Office Printer` + trans_df$`Brother Printer` + trans_df$`DYMO Label Manker`
trans_df$nmain <- trans_df$printer + trans_df$laptops + trans_df$desktop + trans_df$tablet
trans_df$ncomp <- trans_df$nitems - trans_df$nmain
trans_df$value <- 10 * trans_df$nmain + trans_df$ncompVisualizations
Here we make several plots to see the distribution of our variables and also see the frequency of the products bought.
products <- c("laptops", "desktop","printer","tablet")
for (i in products){
print(ggplot(trans_df, aes_string(x = i)) +
geom_bar(fill = "lightgreen", bins = 100) +
ggtitle(paste("Histogram of",i)))
}productsx <- c("laptops", "desktop", "printer", "tablet")
productsy <- c("laptops", "desktop", "printer", "tablet")
for (i in productsx) {
for (j in productsy) {
if (i != j | j != i) {
print(ggplot(trans_df, aes_string(x = i, y = j, color = i)) + geom_jitter() +
ggtitle(paste("Scatterplot of", j, "vs", i)))
}
}
productsy <- productsy[-index(i)]
}Splitting dataframe between corporates and retailers
# Filtering. Corporate will be those transactions with more than 2 main
# products and 3 complements.
corporate <- filter(trans_df, nmain >= 2 | ncomp >= 3)
# Cleaning the new columns we created before
corporate <- corporate[, -which(colnames(corporate) %in% c("laptops", "desktop",
"printer", "tablet", "nitems", "nmain", "value", "ncomp"))]
# Filtering. Retailers will be those transactions with less than 2 main
# products and 3 complements.
retailer <- filter(trans_df, nmain <= 1 & ncomp <= 2)
# Cleaning
retailer <- retailer[, -which(colnames(retailer) %in% c("laptops", "desktop",
"printer", "tablet", "nitems", "nmain", "value", "ncomp"))]
# Transforming the dataframe into a transaction objecte
trans_corp <- as(corporate == 1, "transactions")
trans_retail <- as(retailer == 1, "transactions")
# Inserting labels and the level category
trans_corp@itemInfo$labels <- labels$ProductType
trans_corp@itemInfo$category <- labels$Category
trans_retail@itemInfo$labels <- labels$ProductType
trans_retail@itemInfo$category <- labels$CategoryitemFrequencyPlot(trans_corp, topN = 10, type = "relative", col = brewer.pal(8,
"Pastel2"), main = "Corp Relative Item Frequency Plot")itemFrequencyPlot(trans_retail, topN = 10, type = "relative", col = brewer.pal(8,
"Pastel2"), main = "Retail Relative Item Frequency Plot")Creating rules via apriori algorithm
# Function to create the average
averagetor <- function(rules_corpro) {
# The most populars products
a <- head(rules_corpro[order(-rules_corpro[, which(colnames(rules_corpro) ==
"support")]), ], 10)
# Items that have high chances of being bought together
b <- head(rules_corpro[order(-rules_corpro[, which(colnames(rules_corpro) ==
"support")]), ], 10)
# Lift
c <- head(rules_corpro[order(-rules_corpro[, which(colnames(rules_corpro) ==
"support")]), ], 10)
corpro <- rbind(a, b, c)
corpro <- corpro[!duplicated(corpro), ]
d <- scale(corpro[, which(colnames(corpro) %in% c("support", "confidence",
"lift"))])
average <- (d[, which(colnames(d) == "support")] + d[, which(colnames(d) ==
"confidence")] + d[, which(colnames(d) == "lift")])/3
corpro <- cbind(corpro, average)
corpro <- head(corpro[order(-average), ], 10)
return(corpro)
}Rules for products in corporate transactions
rules_corpro <- apriori(trans_corp, parameter = list(supp = 0.001, conf = 0.01,
minlen = 2))
rules_corpro <- rules_corpro[!is.redundant(rules_corpro)]
summary(rules_corpro)
rule_corpro <- as(rules_corpro, "data.frame")
corpro <- averagetor(rule_corpro)| rules | support | confidence | lift | count | average | |
|---|---|---|---|---|---|---|
| 7343 | {HP Laptop} => {iMac} | 0.1273350 | 0.4267662 | 1.132930 | 743 | 0.8051123 |
| 7313 | {ViewSonic Monitor} => {iMac} | 0.0815767 | 0.4803229 | 1.275106 | 476 | 0.5709258 |
| 7344 | {iMac} => {HP Laptop} | 0.1273350 | 0.3380346 | 1.132930 | 743 | 0.5000222 |
| 7341 | {Lenovo Desktop Computer} => {iMac} | 0.0990574 | 0.4355690 | 1.156299 | 578 | 0.3368490 |
| 7331 | {Dell Desktop} => {iMac} | 0.0920308 | 0.4372964 | 1.160885 | 537 | 0.2143682 |
| 7342 | {iMac} => {Lenovo Desktop Computer} | 0.0990574 | 0.2629663 | 1.156299 | 578 | -0.2566185 |
| 7314 | {iMac} => {ViewSonic Monitor} | 0.0815767 | 0.2165605 | 1.275106 | 476 | -0.3359806 |
| 7332 | {iMac} => {Dell Desktop} | 0.0920308 | 0.2443130 | 1.160885 | 537 | -0.4491756 |
| 7337 | {CYBERPOWER Gamer Desktop} => {iMac} | 0.0956298 | 0.3798502 | 1.008383 | 558 | -0.4761647 |
| 7338 | {iMac} => {CYBERPOWER Gamer Desktop} | 0.0956298 | 0.2538672 | 1.008383 | 558 | -0.9093381 |
Rules for categories in corporate transactions
trans_corcat <- aggregate(trans_corp, by = "category")
rules_corcat <- apriori(trans_corcat, parameter = list(supp = 0.001, conf = 0.01,
minlen = 2))
rules_corcat <- rules_corcat[!is.redundant(rules_corcat)]
summary(rules_corcat)
rule_corcat <- as(rules_corcat, "data.frame")
corcat <- averagetor(rule_corcat)| rules | support | confidence | lift | count | average | |
|---|---|---|---|---|---|---|
| 271 | {Laptops} => {Desktop} | 0.5407027 | 0.7879620 | 1.008059 | 3155 | 0.6754051 |
| 2301 | {Laptops,Monitors} => {Desktop} | 0.3076264 | 0.8100181 | 1.036276 | 1795 | 0.5741039 |
| 272 | {Desktop} => {Laptops} | 0.5407027 | 0.6917343 | 1.008059 | 3155 | 0.3617015 |
| 269 | {Monitors} => {Desktop} | 0.4327335 | 0.7868495 | 1.006636 | 2525 | 0.2558999 |
| 2302 | {Desktop,Monitors} => {Laptops} | 0.3076264 | 0.7108911 | 1.035976 | 1795 | 0.2440085 |
| 267 | {Monitors} => {Laptops} | 0.3797772 | 0.6905578 | 1.006345 | 2216 | -0.2525664 |
| 2303 | {Desktop,Laptops} => {Monitors} | 0.3076264 | 0.5689382 | 1.034514 | 1795 | -0.2526320 |
| 265 | {Computer Mice} => {Desktop} | 0.2904884 | 0.7821874 | 1.000672 | 1695 | -0.4018954 |
| 270 | {Desktop} => {Monitors} | 0.4327335 | 0.5536067 | 1.006636 | 2525 | -0.5044744 |
| 268 | {Laptops} => {Monitors} | 0.3797772 | 0.5534466 | 1.006345 | 2216 | -0.6995507 |
Rules for products in retailers transactions
rules_retpro <- apriori(trans_retail, parameter = list(supp = 0.001, conf = 0.01,
minlen = 2))
rules_retpro <- rules_retpro[!is.redundant(rules_retpro)]
summary(rules_retpro)
rule_retpro <- as(rules_retpro, "data.frame")
retpro <- averagetor(rule_retpro)| rules | support | confidence | lift | count | average | |
|---|---|---|---|---|---|---|
| 271 | {Samsung Monitor} => {CYBERPOWER Gamer Desktop} | 0.00850 | 0.2312925 | 2.7210884 | 34 | 0.8074561 |
| 296 | {CYBERPOWER Gamer Desktop} => {Apple Earpods} | 0.01425 | 0.1676471 | 1.3331774 | 57 | 0.6811959 |
| 297 | {Apple Earpods} => {CYBERPOWER Gamer Desktop} | 0.01425 | 0.1133201 | 1.3331774 | 57 | 0.4089378 |
| 292 | {3-Button Mouse} => {Apple Earpods} | 0.00925 | 0.2000000 | 1.5904573 | 37 | 0.2504073 |
| 259 | {Apple Macbook Pro} => {Apple Earpods} | 0.00800 | 0.2176871 | 1.7311099 | 32 | 0.2250068 |
| 272 | {CYBERPOWER Gamer Desktop} => {Samsung Monitor} | 0.00850 | 0.1000000 | 2.7210884 | 34 | 0.1494874 |
| 293 | {Apple Earpods} => {3-Button Mouse} | 0.00925 | 0.0735586 | 1.5904573 | 37 | -0.3832499 |
| 260 | {Apple Earpods} => {Apple Macbook Pro} | 0.00800 | 0.0636183 | 1.7311099 | 32 | -0.5471045 |
| 299 | {Apple Earpods} => {Apple MacBook Air} | 0.00975 | 0.0775348 | 0.5283461 | 39 | -0.7682666 |
| 298 | {Apple MacBook Air} => {Apple Earpods} | 0.00975 | 0.0664395 | 0.5283461 | 39 | -0.8238702 |
Rules for categories in retailers transactions
trans_retcat <- aggregate(trans_retail, by = "category")
rules_retcat <- apriori(trans_retcat, parameter = list(supp = 0.001, conf = 0.01,
minlen = 2))
rules_retcat <- rules_retcat[!is.redundant(rules_retcat)]
summary(rules_retcat)
rule_retcat <- as(rules_retcat, "data.frame")
retcat <- averagetor(rule_retcat)| rules | support | confidence | lift | count | average | |
|---|---|---|---|---|---|---|
| 180 | {Monitors} => {Desktop} | 0.05375 | 0.3272451 | 1.1452145 | 215 | 1.5705548 |
| 181 | {Desktop} => {Monitors} | 0.05375 | 0.1881015 | 1.1452145 | 215 | 0.9887284 |
| 170 | {Computer Mice} => {Desktop} | 0.03825 | 0.2875940 | 1.0064531 | 153 | 0.3956863 |
| 162 | {Keyboard} => {Desktop} | 0.03625 | 0.2859961 | 1.0008611 | 145 | 0.2838193 |
| 171 | {Desktop} => {Computer Mice} | 0.03825 | 0.1338583 | 1.0064531 | 153 | -0.2471569 |
| 174 | {Active Headphones} => {Laptops} | 0.03625 | 0.2449324 | 0.7825317 | 145 | -0.3314923 |
| 163 | {Desktop} => {Keyboard} | 0.03625 | 0.1268591 | 1.0008611 | 145 | -0.3816090 |
| 178 | {Monitors} => {Laptops} | 0.03725 | 0.2267884 | 0.7245637 | 149 | -0.4782297 |
| 175 | {Laptops} => {Active Headphones} | 0.03625 | 0.1158147 | 0.7825317 | 145 | -0.8713958 |
| 179 | {Laptops} => {Monitors} | 0.03725 | 0.1190096 | 0.7245637 | 149 | -0.9289051 |
Rules visualizations
methods <- c("graph", "scatterplot")
for (i in methods) {
plot(rules_corpro, method = i, control = list(type = "items"), max = 10,
main = paste(capitalize(i), "of rules of products bought by corporates"))
plot(rules_corcat, method = i, control = list(type = "items"), max = 10,
main = paste(capitalize(i), "of rules of categories bought by corporates"))
plot(rules_retpro, method = i, control = list(type = "items"), max = 10,
main = paste(capitalize(i), "of rules of products bought by retailers"))
plot(rules_retcat, method = i, control = list(type = "items"), max = 10,
main = paste(capitalize(i), "of rules of categories bought by retailers"))
}Available control parameters (with default values):
main = Graph for 10 rules
nodeColors = c("#66CC6680", "#9999CC80")
nodeCol = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
edgeCol = c("#474747FF", "#494949FF", "#4B4B4BFF", "#4D4D4DFF", "#4F4F4FFF", "#515151FF", "#535353FF", "#555555FF", "#575757FF", "#595959FF", "#5B5B5BFF", "#5E5E5EFF", "#606060FF", "#626262FF", "#646464FF", "#666666FF", "#686868FF", "#6A6A6AFF", "#6C6C6CFF", "#6E6E6EFF", "#707070FF", "#727272FF", "#747474FF", "#767676FF", "#787878FF", "#7A7A7AFF", "#7C7C7CFF", "#7E7E7EFF", "#808080FF", "#828282FF", "#848484FF", "#868686FF", "#888888FF", "#8A8A8AFF", "#8C8C8CFF", "#8D8D8DFF", "#8F8F8FFF", "#919191FF", "#939393FF", "#959595FF", "#979797FF", "#999999FF", "#9A9A9AFF", "#9C9C9CFF", "#9E9E9EFF", "#A0A0A0FF", "#A2A2A2FF", "#A3A3A3FF", "#A5A5A5FF", "#A7A7A7FF", "#A9A9A9FF", "#AAAAAAFF", "#ACACACFF", "#AEAEAEFF", "#AFAFAFFF", "#B1B1B1FF", "#B3B3B3FF", "#B4B4B4FF", "#B6B6B6FF", "#B7B7B7FF", "#B9B9B9FF", "#BBBBBBFF", "#BCBCBCFF", "#BEBEBEFF", "#BFBFBFFF", "#C1C1C1FF", "#C2C2C2FF", "#C3C3C4FF", "#C5C5C5FF", "#C6C6C6FF", "#C8C8C8FF", "#C9C9C9FF", "#CACACAFF", "#CCCCCCFF", "#CDCDCDFF", "#CECECEFF", "#CFCFCFFF", "#D1D1D1FF", "#D2D2D2FF", "#D3D3D3FF", "#D4D4D4FF", "#D5D5D5FF", "#D6D6D6FF", "#D7D7D7FF", "#D8D8D8FF", "#D9D9D9FF", "#DADADAFF", "#DBDBDBFF", "#DCDCDCFF", "#DDDDDDFF", "#DEDEDEFF", "#DEDEDEFF", "#DFDFDFFF", "#E0E0E0FF", "#E0E0E0FF", "#E1E1E1FF", "#E1E1E1FF", "#E2E2E2FF", "#E2E2E2FF", "#E2E2E2FF")
alpha = 0.5
cex = 1
itemLabels = TRUE
labelCol = #000000B3
measureLabels = FALSE
precision = 3
layout = NULL
layoutParams = list()
arrowSize = 0.5
engine = igraph
plot = TRUE
plot_options = list()
max = 100
verbose = FALSE
Available control parameters (with default values):
main = Graph for 10 rules
nodeColors = c("#66CC6680", "#9999CC80")
nodeCol = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
edgeCol = c("#474747FF", "#494949FF", "#4B4B4BFF", "#4D4D4DFF", "#4F4F4FFF", "#515151FF", "#535353FF", "#555555FF", "#575757FF", "#595959FF", "#5B5B5BFF", "#5E5E5EFF", "#606060FF", "#626262FF", "#646464FF", "#666666FF", "#686868FF", "#6A6A6AFF", "#6C6C6CFF", "#6E6E6EFF", "#707070FF", "#727272FF", "#747474FF", "#767676FF", "#787878FF", "#7A7A7AFF", "#7C7C7CFF", "#7E7E7EFF", "#808080FF", "#828282FF", "#848484FF", "#868686FF", "#888888FF", "#8A8A8AFF", "#8C8C8CFF", "#8D8D8DFF", "#8F8F8FFF", "#919191FF", "#939393FF", "#959595FF", "#979797FF", "#999999FF", "#9A9A9AFF", "#9C9C9CFF", "#9E9E9EFF", "#A0A0A0FF", "#A2A2A2FF", "#A3A3A3FF", "#A5A5A5FF", "#A7A7A7FF", "#A9A9A9FF", "#AAAAAAFF", "#ACACACFF", "#AEAEAEFF", "#AFAFAFFF", "#B1B1B1FF", "#B3B3B3FF", "#B4B4B4FF", "#B6B6B6FF", "#B7B7B7FF", "#B9B9B9FF", "#BBBBBBFF", "#BCBCBCFF", "#BEBEBEFF", "#BFBFBFFF", "#C1C1C1FF", "#C2C2C2FF", "#C3C3C4FF", "#C5C5C5FF", "#C6C6C6FF", "#C8C8C8FF", "#C9C9C9FF", "#CACACAFF", "#CCCCCCFF", "#CDCDCDFF", "#CECECEFF", "#CFCFCFFF", "#D1D1D1FF", "#D2D2D2FF", "#D3D3D3FF", "#D4D4D4FF", "#D5D5D5FF", "#D6D6D6FF", "#D7D7D7FF", "#D8D8D8FF", "#D9D9D9FF", "#DADADAFF", "#DBDBDBFF", "#DCDCDCFF", "#DDDDDDFF", "#DEDEDEFF", "#DEDEDEFF", "#DFDFDFFF", "#E0E0E0FF", "#E0E0E0FF", "#E1E1E1FF", "#E1E1E1FF", "#E2E2E2FF", "#E2E2E2FF", "#E2E2E2FF")
alpha = 0.5
cex = 1
itemLabels = TRUE
labelCol = #000000B3
measureLabels = FALSE
precision = 3
layout = NULL
layoutParams = list()
arrowSize = 0.5
engine = igraph
plot = TRUE
plot_options = list()
max = 100
verbose = FALSE
Available control parameters (with default values):
main = Graph for 10 rules
nodeColors = c("#66CC6680", "#9999CC80")
nodeCol = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
edgeCol = c("#474747FF", "#494949FF", "#4B4B4BFF", "#4D4D4DFF", "#4F4F4FFF", "#515151FF", "#535353FF", "#555555FF", "#575757FF", "#595959FF", "#5B5B5BFF", "#5E5E5EFF", "#606060FF", "#626262FF", "#646464FF", "#666666FF", "#686868FF", "#6A6A6AFF", "#6C6C6CFF", "#6E6E6EFF", "#707070FF", "#727272FF", "#747474FF", "#767676FF", "#787878FF", "#7A7A7AFF", "#7C7C7CFF", "#7E7E7EFF", "#808080FF", "#828282FF", "#848484FF", "#868686FF", "#888888FF", "#8A8A8AFF", "#8C8C8CFF", "#8D8D8DFF", "#8F8F8FFF", "#919191FF", "#939393FF", "#959595FF", "#979797FF", "#999999FF", "#9A9A9AFF", "#9C9C9CFF", "#9E9E9EFF", "#A0A0A0FF", "#A2A2A2FF", "#A3A3A3FF", "#A5A5A5FF", "#A7A7A7FF", "#A9A9A9FF", "#AAAAAAFF", "#ACACACFF", "#AEAEAEFF", "#AFAFAFFF", "#B1B1B1FF", "#B3B3B3FF", "#B4B4B4FF", "#B6B6B6FF", "#B7B7B7FF", "#B9B9B9FF", "#BBBBBBFF", "#BCBCBCFF", "#BEBEBEFF", "#BFBFBFFF", "#C1C1C1FF", "#C2C2C2FF", "#C3C3C4FF", "#C5C5C5FF", "#C6C6C6FF", "#C8C8C8FF", "#C9C9C9FF", "#CACACAFF", "#CCCCCCFF", "#CDCDCDFF", "#CECECEFF", "#CFCFCFFF", "#D1D1D1FF", "#D2D2D2FF", "#D3D3D3FF", "#D4D4D4FF", "#D5D5D5FF", "#D6D6D6FF", "#D7D7D7FF", "#D8D8D8FF", "#D9D9D9FF", "#DADADAFF", "#DBDBDBFF", "#DCDCDCFF", "#DDDDDDFF", "#DEDEDEFF", "#DEDEDEFF", "#DFDFDFFF", "#E0E0E0FF", "#E0E0E0FF", "#E1E1E1FF", "#E1E1E1FF", "#E2E2E2FF", "#E2E2E2FF", "#E2E2E2FF")
alpha = 0.5
cex = 1
itemLabels = TRUE
labelCol = #000000B3
measureLabels = FALSE
precision = 3
layout = NULL
layoutParams = list()
arrowSize = 0.5
engine = igraph
plot = TRUE
plot_options = list()
max = 100
verbose = FALSE
Available control parameters (with default values):
main = Graph for 10 rules
nodeColors = c("#66CC6680", "#9999CC80")
nodeCol = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
edgeCol = c("#474747FF", "#494949FF", "#4B4B4BFF", "#4D4D4DFF", "#4F4F4FFF", "#515151FF", "#535353FF", "#555555FF", "#575757FF", "#595959FF", "#5B5B5BFF", "#5E5E5EFF", "#606060FF", "#626262FF", "#646464FF", "#666666FF", "#686868FF", "#6A6A6AFF", "#6C6C6CFF", "#6E6E6EFF", "#707070FF", "#727272FF", "#747474FF", "#767676FF", "#787878FF", "#7A7A7AFF", "#7C7C7CFF", "#7E7E7EFF", "#808080FF", "#828282FF", "#848484FF", "#868686FF", "#888888FF", "#8A8A8AFF", "#8C8C8CFF", "#8D8D8DFF", "#8F8F8FFF", "#919191FF", "#939393FF", "#959595FF", "#979797FF", "#999999FF", "#9A9A9AFF", "#9C9C9CFF", "#9E9E9EFF", "#A0A0A0FF", "#A2A2A2FF", "#A3A3A3FF", "#A5A5A5FF", "#A7A7A7FF", "#A9A9A9FF", "#AAAAAAFF", "#ACACACFF", "#AEAEAEFF", "#AFAFAFFF", "#B1B1B1FF", "#B3B3B3FF", "#B4B4B4FF", "#B6B6B6FF", "#B7B7B7FF", "#B9B9B9FF", "#BBBBBBFF", "#BCBCBCFF", "#BEBEBEFF", "#BFBFBFFF", "#C1C1C1FF", "#C2C2C2FF", "#C3C3C4FF", "#C5C5C5FF", "#C6C6C6FF", "#C8C8C8FF", "#C9C9C9FF", "#CACACAFF", "#CCCCCCFF", "#CDCDCDFF", "#CECECEFF", "#CFCFCFFF", "#D1D1D1FF", "#D2D2D2FF", "#D3D3D3FF", "#D4D4D4FF", "#D5D5D5FF", "#D6D6D6FF", "#D7D7D7FF", "#D8D8D8FF", "#D9D9D9FF", "#DADADAFF", "#DBDBDBFF", "#DCDCDCFF", "#DDDDDDFF", "#DEDEDEFF", "#DEDEDEFF", "#DFDFDFFF", "#E0E0E0FF", "#E0E0E0FF", "#E1E1E1FF", "#E1E1E1FF", "#E2E2E2FF", "#E2E2E2FF", "#E2E2E2FF")
alpha = 0.5
cex = 1
itemLabels = TRUE
labelCol = #000000B3
measureLabels = FALSE
precision = 3
layout = NULL
layoutParams = list()
arrowSize = 0.5
engine = igraph
plot = TRUE
plot_options = list()
max = 100
verbose = FALSE
Available control parameters (with default values):
main = Scatter plot for 109029 rules
engine = default
pch = 19
cex = 0.5
xlim = NULL
ylim = NULL
zlim = NULL
alpha = NULL
col = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
newpage = TRUE
jitter = NA
verbose = FALSE
Available control parameters (with default values):
main = Scatter plot for 40895 rules
engine = default
pch = 19
cex = 0.5
xlim = NULL
ylim = NULL
zlim = NULL
alpha = NULL
col = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
newpage = TRUE
jitter = NA
verbose = FALSE
Available control parameters (with default values):
main = Scatter plot for 306 rules
engine = default
pch = 19
cex = 0.5
xlim = NULL
ylim = NULL
zlim = NULL
alpha = NULL
col = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
newpage = TRUE
jitter = NA
verbose = FALSE
Available control parameters (with default values):
main = Scatter plot for 235 rules
engine = default
pch = 19
cex = 0.5
xlim = NULL
ylim = NULL
zlim = NULL
alpha = NULL
col = c("#EE0000FF", "#EE0303FF", "#EE0606FF", "#EE0909FF", "#EE0C0CFF", "#EE0F0FFF", "#EE1212FF", "#EE1515FF", "#EE1818FF", "#EE1B1BFF", "#EE1E1EFF", "#EE2222FF", "#EE2525FF", "#EE2828FF", "#EE2B2BFF", "#EE2E2EFF", "#EE3131FF", "#EE3434FF", "#EE3737FF", "#EE3A3AFF", "#EE3D3DFF", "#EE4040FF", "#EE4444FF", "#EE4747FF", "#EE4A4AFF", "#EE4D4DFF", "#EE5050FF", "#EE5353FF", "#EE5656FF", "#EE5959FF", "#EE5C5CFF", "#EE5F5FFF", "#EE6262FF", "#EE6666FF", "#EE6969FF", "#EE6C6CFF", "#EE6F6FFF", "#EE7272FF", "#EE7575FF", "#EE7878FF", "#EE7B7BFF", "#EE7E7EFF", "#EE8181FF", "#EE8484FF", "#EE8888FF", "#EE8B8BFF", "#EE8E8EFF", "#EE9191FF", "#EE9494FF", "#EE9797FF", "#EE9999FF", "#EE9B9BFF", "#EE9D9DFF", "#EE9F9FFF", "#EEA0A0FF", "#EEA2A2FF", "#EEA4A4FF", "#EEA5A5FF", "#EEA7A7FF", "#EEA9A9FF", "#EEABABFF", "#EEACACFF", "#EEAEAEFF", "#EEB0B0FF", "#EEB1B1FF", "#EEB3B3FF", "#EEB5B5FF", "#EEB7B7FF", "#EEB8B8FF", "#EEBABAFF", "#EEBCBCFF", "#EEBDBDFF", "#EEBFBFFF", "#EEC1C1FF", "#EEC3C3FF", "#EEC4C4FF", "#EEC6C6FF", "#EEC8C8FF", "#EEC9C9FF", "#EECBCBFF", "#EECDCDFF", "#EECFCFFF", "#EED0D0FF", "#EED2D2FF", "#EED4D4FF", "#EED5D5FF", "#EED7D7FF", "#EED9D9FF", "#EEDBDBFF", "#EEDCDCFF", "#EEDEDEFF", "#EEE0E0FF", "#EEE1E1FF", "#EEE3E3FF", "#EEE5E5FF", "#EEE7E7FF", "#EEE8E8FF", "#EEEAEAFF", "#EEECECFF", "#EEEEEEFF")
newpage = TRUE
jitter = NA
verbose = FALSE
results <- rbind(retpro[1:3, which(colnames(retpro) %in% c("lhs", "Var.2", "rhs",
"average"))], retcat[1:3, which(colnames(retcat) %in% c("lhs", "Var.2",
"rhs", "average"))], corpro[1:3, which(colnames(corpro) %in% c("lhs", "Var.2",
"rhs", "average"))], corcat[1:3, which(colnames(corcat) %in% c("lhs", "Var.2",
"rhs", "average"))])
write.csv(results, "results.csv")