library(tidyverse)

net_a_porter <- read_csv("~/Downloads/archive/net-a-porter.csv")

mr_porter <- read_csv("~/Downloads/archive/mr-porter.csv")

net_a_porter$store <- "Net-a-Porter"
mr_porter$store <- "Mr Porter"

fashion <- bind_rows(net_a_porter, mr_porter)

Introduction

This analysis examines a dataset of luxury fashion products from luxury retailers Net-a-Porter and Mr Porter. As someone who will be pursuing a career in fashion buying and merchandising, analyzing these patterns in product assortment, pricing, descriptions, etc. are important when looking at trend prediction.

Dataset

The dataset contains 43,508 luxury fashion products and five variables: brand, description, price (USD), product type, and store. The data combines products from Net-a-Porter and Mr Porter, allowing the two stores to be compared based on their product offerings and pricing.

Findings

Product Types

This visualization shows the number of products in each product type across both Net-a-Porter and Mr Porter. It helps show which categories make up the largest part of the luxury fashion assortment.

# Visualization 1: # of Products by Product Type

ggplot(fashion, aes(x = type)) +
  geom_bar(fill = "pink") +
  labs(
    title = "Luxury Fashion Products by Product Type",
    x = "Product Type",
    y = "Number of Products"
  ) +
  theme_minimal()

Price Distribution

This visualization shows the distribution of product prices in the dataset. It helps show the range of prices and where luxury fashion products tend to be most concentrated.

# Visualization 2: Distribution of Product Prices

ggplot(fashion, aes(x = price_usd)) +
  geom_histogram(bins = 30, fill = "lightblue") +
  labs(
    title = "Distribution of Luxury Fashion Product Prices",
    x = "Price (USD)",
    y = "Number of Products"
  ) +
  theme_minimal()

Products by Store

This visualization compares the number of products available from Net-a-Porter and Mr Porter. It illustrates how the total product assortment is divided between the two stores.

# Visualization 3: Product Distribution by Store

store_counts <- fashion %>%
  count(store)

ggplot(store_counts, aes(x = 2, y = n, fill = store)) +
  geom_col(width = 1) +
  coord_polar(theta = "y") +
  xlim(0.5, 2.5) +
  labs(
    title = "Luxury Fashion Products by Store",
    fill = "Store"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(hjust = 0.5)
  )

Product Types by Store

This visualization compares the types of luxury fashion products offered by Net-a-Porter and Mr Porter. Comparing the stores side by side helps identify similarities and differences in their product assortments.

# Visualization 4: Product Types by Store

ggplot(fashion, aes(x = type)) +
  geom_bar(fill = "pink") +
  facet_wrap(~store) +
  labs(
    title = "Luxury Fashion Product Types by Store",
    x = "Product Type",
    y = "Number of Products"
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Product Assortment

This heat map shows the number of products for each product type across Net-a-Porter and Mr Porter. It provides a visual comparison of how product categories are distributed between the two stores.

# Visualization 5: Product Type and Store

heatmap_data <- fashion %>%
  count(store, type)

ggplot(heatmap_data, aes(x = store, y = type, fill = n)) +
  geom_tile() +
  labs(
    title = "Luxury Fashion Product Assortment by Store",
    x = "Store",
    y = "Product Type",
    fill = "Number of Products"
  ) +
  theme_minimal()

Conclusion

Overall, this analysis shows the product assortment and pricing patterns across Net-a-Porter and Mr Porter. The visualizations show differences in product types and store offerings while providing an overview of the luxury fashion products included in the dataset. Data like this is widely used in the fashion industry to predict trends, analyze markets, and more.

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.