library(ggplot2)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(conflicted)
conflicts_prefer(dplyr::filter)
[conflicted] Will prefer dplyr::filter over any other package.
library(completejourney)
Welcome to the completejourney package! Learn more about these data
sets at http://bit.ly/completejourney.
##Plot 1
library(stringr)
transactions <- transactions_sample
transactions_sample %>%
  inner_join(demographics, by = 'household_id') %>%
  inner_join(products, by = 'product_id') %>%
  filter(department == 'DRUG GM') %>%
  mutate(loyalty_price = (sales_value + coupon_match_disc) / quantity) %>%
  filter(loyalty_price > 0) %>%
  ggplot(aes(x = age , y = loyalty_price , fill = age)) +
  geom_col() +
  scale_y_continuous(limits = c(0, 6500), breaks = seq(0, 6500, by = 500)) +
  labs(
    title = "Loyalty Price Per Age Group for DRUG GM Department",
    x = "Age Group",
    y = "Loyalty Price"
  ) + theme(legend.position = "none")

##Plot 2
products %>%
  filter(str_detect(product_type, "PICKLES")) %>%
  inner_join(transactions_sample , by = 'product_id') %>%
  inner_join(demographics , by = 'household_id') %>%
  ggplot(aes(x = quantity , y = product_type)) +
  geom_point(aes(color = income)) +
  facet_wrap(~ age) +
  scale_color_brewer(palette="Set3") +
  labs(
    title = "Pickle Products Quantity Purchased By Age-Groups",
    x = "Quantity Purchased",
    y = "Different Product Types of Pickles" ) +
  guides(color = guide_legend(title = "Income Group"))

##Plot 3
transactions_sample %>%
  inner_join(demographics, by = 'household_id') %>%
  group_by(age,household_comp) %>%
  summarize(total_quantity = sum(quantity)) %>%
  ggplot(aes(x = age, y = total_quantity, fill = household_comp)) +
  geom_bar(stat = "identity") +
  guides(fill = guide_legend(title = "Household Composition")) +
  scale_y_continuous(breaks = seq(0,1600000, by = 400000)) +
  labs(title = "Total Quantity Purchased by each Age Group classified by Household composition",
       x = "Age Group",
       y = "Total Quantity Purchased")
`summarise()` has grouped output by 'age'. You can override using the `.groups`
argument.

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCmBgYHtyfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoY29uZmxpY3RlZCkNCmNvbmZsaWN0c19wcmVmZXIoZHBseXI6OmZpbHRlcikNCmxpYnJhcnkoY29tcGxldGVqb3VybmV5KQ0KYGBgDQoNCg0KYGBge3J9DQojI1Bsb3QgMQ0KbGlicmFyeShzdHJpbmdyKQ0KdHJhbnNhY3Rpb25zIDwtIHRyYW5zYWN0aW9uc19zYW1wbGUNCnRyYW5zYWN0aW9uc19zYW1wbGUgJT4lDQogIGlubmVyX2pvaW4oZGVtb2dyYXBoaWNzLCBieSA9ICdob3VzZWhvbGRfaWQnKSAlPiUNCiAgaW5uZXJfam9pbihwcm9kdWN0cywgYnkgPSAncHJvZHVjdF9pZCcpICU+JQ0KICBmaWx0ZXIoZGVwYXJ0bWVudCA9PSAnRFJVRyBHTScpICU+JQ0KICBtdXRhdGUobG95YWx0eV9wcmljZSA9IChzYWxlc192YWx1ZSArIGNvdXBvbl9tYXRjaF9kaXNjKSAvIHF1YW50aXR5KSAlPiUNCiAgZmlsdGVyKGxveWFsdHlfcHJpY2UgPiAwKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gYWdlICwgeSA9IGxveWFsdHlfcHJpY2UgLCBmaWxsID0gYWdlKSkgKw0KICBnZW9tX2NvbCgpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgNjUwMCksIGJyZWFrcyA9IHNlcSgwLCA2NTAwLCBieSA9IDUwMCkpICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJMb3lhbHR5IFByaWNlIFBlciBBZ2UgR3JvdXAgZm9yIERSVUcgR00gRGVwYXJ0bWVudCIsDQogICAgeCA9ICJBZ2UgR3JvdXAiLA0KICAgIHkgPSAiTG95YWx0eSBQcmljZSINCiAgKSArIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikNCmBgYA0KYGBge3J9DQojI1Bsb3QgMg0KcHJvZHVjdHMgJT4lDQogIGZpbHRlcihzdHJfZGV0ZWN0KHByb2R1Y3RfdHlwZSwgIlBJQ0tMRVMiKSkgJT4lDQogIGlubmVyX2pvaW4odHJhbnNhY3Rpb25zX3NhbXBsZSAsIGJ5ID0gJ3Byb2R1Y3RfaWQnKSAlPiUNCiAgaW5uZXJfam9pbihkZW1vZ3JhcGhpY3MgLCBieSA9ICdob3VzZWhvbGRfaWQnKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gcXVhbnRpdHkgLCB5ID0gcHJvZHVjdF90eXBlKSkgKw0KICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IGluY29tZSkpICsNCiAgZmFjZXRfd3JhcCh+IGFnZSkgKw0KICBzY2FsZV9jb2xvcl9icmV3ZXIocGFsZXR0ZT0iU2V0MyIpICsNCiAgbGFicygNCiAgICB0aXRsZSA9ICJQaWNrbGUgUHJvZHVjdHMgUXVhbnRpdHkgUHVyY2hhc2VkIEJ5IEFnZS1Hcm91cHMiLA0KICAgIHggPSAiUXVhbnRpdHkgUHVyY2hhc2VkIiwNCiAgICB5ID0gIkRpZmZlcmVudCBQcm9kdWN0IFR5cGVzIG9mIFBpY2tsZXMiICkgKw0KICBndWlkZXMoY29sb3IgPSBndWlkZV9sZWdlbmQodGl0bGUgPSAiSW5jb21lIEdyb3VwIikpDQpgYGANCg0KDQpgYGB7cn0NCg0KIyNQbG90IDMNCnRyYW5zYWN0aW9uc19zYW1wbGUgJT4lDQogIGlubmVyX2pvaW4oZGVtb2dyYXBoaWNzLCBieSA9ICdob3VzZWhvbGRfaWQnKSAlPiUNCiAgZ3JvdXBfYnkoYWdlLGhvdXNlaG9sZF9jb21wKSAlPiUNCiAgc3VtbWFyaXplKHRvdGFsX3F1YW50aXR5ID0gc3VtKHF1YW50aXR5KSkgJT4lDQogIGdncGxvdChhZXMoeCA9IGFnZSwgeSA9IHRvdGFsX3F1YW50aXR5LCBmaWxsID0gaG91c2Vob2xkX2NvbXApKSArDQogIGdlb21fYmFyKHN0YXQgPSAiaWRlbnRpdHkiKSArDQogIGd1aWRlcyhmaWxsID0gZ3VpZGVfbGVnZW5kKHRpdGxlID0gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIpKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBzZXEoMCwxNjAwMDAwLCBieSA9IDQwMDAwMCkpICsNCiAgbGFicyh0aXRsZSA9ICJUb3RhbCBRdWFudGl0eSBQdXJjaGFzZWQgYnkgZWFjaCBBZ2UgR3JvdXAgY2xhc3NpZmllZCBieSBIb3VzZWhvbGQgY29tcG9zaXRpb24iLA0KICAgICAgIHggPSAiQWdlIEdyb3VwIiwNCiAgICAgICB5ID0gIlRvdGFsIFF1YW50aXR5IFB1cmNoYXNlZCIpDQpgYGANCg==