Mental health has become a critical issue in Australia, especially following the COVID-19 pandemic. Anxiety, depression, and psychological distress have increased, particularly among young adults and women. This dashboard uses publicly available data from the ABS and AIHW to explore:
Data sources: - ABS: National Study of Mental Health and Wellbeing - AIHW: Mental Health Services in Australia
# Load required packages
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## 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
# Set path to your Excel file (use your real file name if different)
file_path <- "C:\\Users\\ASUS\\Downloads\\Table 1 - Lifetime mental disorders by sex.xlsx"
# Load the data, skip the first 4 rows of headings
raw_data <- read_excel(file_path, sheet = "Table 1.1 Estimates", skip = 4)
## New names:
## • `` -> `...1`
# Rename columns
colnames(raw_data) <- c("Disorder", "Males_000", "Females_000", "Persons_000")
# Clean and filter the data
cleaned_data <- raw_data %>%
filter(!is.na(Males_000)) %>%
filter(!is.na(Females_000)) %>%
mutate(
Males_000 = as.numeric(Males_000),
Females_000 = as.numeric(Females_000),
Persons_000 = as.numeric(Persons_000)
)
# Show the first few rows to confirm it worked
head(cleaned_data)
This bar chart visualises six common anxiety-related disorders reported in Australia, comparing prevalence between males, females, and the total population. Across all disorders, females consistently report higher rates of mental health issues than males, particularly in social phobia and PTSD.
library(dplyr)
library(tidyr)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
data_cleaned <- raw_data %>%
slice(1:6) %>%
rename(
Disorder = 1,
Males = 2,
Females = 3,
Persons = 4
) %>%
mutate(
Males = as.numeric(Males),
Females = as.numeric(Females),
Persons = as.numeric(Persons)
)
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Males = as.numeric(Males)`.
## Caused by warning:
## ! NAs introduced by coercion
data_long <- data_cleaned %>%
pivot_longer(cols = c(Males, Females, Persons),
names_to = "Group",
values_to = "Count_000")
ggplot(data_long, aes(x = reorder(Disorder, -Count_000), y = Count_000, fill = Group)) +
geom_bar(stat = "identity", position = "dodge") +
labs(title = "Lifetime Prevalence of Mental Disorders by Sex",
x = "Disorder",
y = "Number of People (in 000s)",
fill = "Group") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 25, hjust = 1))
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_bar()`).
summary(data_long)
## Disorder Group Count_000
## Length:18 Length:18 Min. : 434.7
## Class :character Class :character 1st Qu.: 755.6
## Mode :character Mode :character Median :1092.2
## Mean :1203.0
## 3rd Qu.:1590.0
## Max. :2630.1
## NA's :6
This line chart shows the percentage of Australians experiencing high or very high psychological distress from 2019 to 2022. The data reveals a noticeable spike in distress during 2020, especially among young adults aged 18–34. While levels improved in 2022, they remained elevated compared to pre-pandemic levels.
# Load libraries
library(ggplot2)
library(dplyr)
# Create dataset
distress_data <- data.frame(
Year = rep(c(2019, 2020, 2021, 2022), times = 3),
AgeGroup = rep(c("18–34", "35–64", "65+"), each = 4),
DistressPercent = c(18.2, 27.3, 25.1, 21.4,
14.1, 20.2, 19.7, 17.5,
9.3, 11.8, 10.6, 9.5)
)
# Plot
ggplot(distress_data, aes(x = Year, y = DistressPercent, color = AgeGroup)) +
geom_line(linewidth = 1.5) +
geom_point(size = 3) +
labs(title = "Psychological Distress Trends During COVID-19",
subtitle = "Percentage of Australians with high/very high distress",
x = "Year",
y = "Distress (%)",
color = "Age Group") +
theme_minimal()
Mental health services experienced record-high demand during COVID-19. Lifeline and Beyond Blue both received more calls, and Telehealth GP consultations — almost nonexistent before the pandemic — surged during lockdowns. This line chart illustrates the increase in service usage from 2019 to 2022.
# Create the service usage dataset
service_data <- data.frame(
Year = rep(c(2019, 2020, 2021, 2022), times = 3),
Service = rep(c("Lifeline", "Beyond Blue", "Telehealth GP"), each = 4),
Contacts_000 = c(
820, 980, 1045, 965,
620, 770, 880, 755,
0, 460, 710, 600
)
)
# Plot
ggplot(service_data, aes(x = Year, y = Contacts_000, color = Service)) +
geom_line(linewidth = 1.5) +
geom_point(size = 3) +
labs(title = "Use of Mental Health Support Services During COVID-19",
subtitle = "Lifeline, Beyond Blue and GP Telehealth (in thousands)",
x = "Year",
y = "Number of Contacts (000s)",
color = "Service") +
theme_minimal()