The Nike uniform controversy

Following Nike’s post showcasing examples of their 2024 Summer Olympics uniforms, thousands took to social media to share their reactions.

Among the most common themes in the responses were outrage at the revealing cut and body exposure of the women’s uniform (11.5% – with words used like “coochie” and “bikini”), and criticism that the design reflects deeper issues of sexism and female objectification (5.3% – with words used like “sexist” and “misogyny”).

The following tables illustrate the frequency of these themes in the user responses.

Mentions of body exposure
Exposure Count Percent
0 4847 88.5
1 632 11.5
Mentions of sexism and gender inequality
Sexism Count Percent
0 5187 94.7
1 292 5.3

Code:

# Load packages

if (!require("tidyverse")) install.packages("tidyverse")
if (!require("tidytext")) install.packages("tidytext")
if (!require("plotly")) install.packages("plotly")
if (!require("gtExtras")) install.packages("gtExtras")

library(tidyverse)
library(tidytext)
library(gtExtras) 
library(plotly)
library(lubridate)

# Read the data

mydata <- read.csv("https://raw.githubusercontent.com/drkblake/Data/main/NikeUniforms.csv")

# Counting posts about Nike

tidy_text <- mydata %>% 
  unnest_tokens(word,Full.Text) %>% 
  count(word, sort = TRUE)

# Deleting standard stop words

data("stop_words")
tidy_text <- tidy_text %>%
  anti_join(stop_words)

# Deleting custom stop words

my_stopwords <- tibble(word = c("https",
                                "t.co",
                                "rt"))
tidy_text <- tidy_text %>% 
  anti_join(my_stopwords)

head(tidy_text, 75)

# Exposure topic table

searchterms <- "coochie|labia|pussy|bikini|bush|lips"

mydata$Exposure <- ifelse(grepl(searchterms,
                              mydata$Full.Text,
                              ignore.case = TRUE),1,0)
Exposure <- mydata %>%
  group_by(Exposure) %>%
  summarize(
    Count = n(),
    Percent = round(n() / nrow(mydata) * 100, 1)
  )

ExposureTable <- gt(Exposure) %>% 
  tab_header("Mentions of body exposure") %>%
  cols_align(align = "left") %>%
  gt_theme_538

ExposureTable

# Sexism topic table

searchterms <- "sexis|sexuali|patriarch|objectif|misogyn| male gaze"

mydata$Sexism <- ifelse(grepl(searchterms,
                             mydata$Full.Text,
                             ignore.case = TRUE),1,0)
Sexism <- mydata %>%
  group_by(Sexism) %>%
  summarize(
    Count = n(),
    Percent = round(n() / nrow(mydata) * 100, 1)
  )

SexismTable <- gt(Sexism) %>% 
  tab_header("Mentions of sexism and gender inequality") %>%
  cols_align(align = "left") %>%
  gt_theme_538

SexismTable