# Load necessary libraries
library(ggplot2)
library(tidyr)
# Read data from CSV file
Sheet2 <- read.csv("Sheet2.csv")
# Check the structure of the data
str(Sheet2)
## 'data.frame': 9 obs. of 10 variables:
## $ Lookup : chr "EnglandEnglandHip ReplacementEQ VAS" "EnglandEnglandHip ReplacementEQ-5D Index" "EnglandEnglandHip ReplacementOxford Hip Score" "EnglandEnglandHip Replacement PrimaryEQ VAS" ...
## $ Procedure : chr "Hip Replacement" "Hip Replacement" "Hip Replacement" "Hip Replacement Primary" ...
## $ Measure : chr "EQ VAS" "EQ-5D Index" "Oxford Hip Score" "EQ VAS" ...
## $ Improved : int 1605 2194 2400 1131 1596 1710 46 67 76
## $ Unchanged : int 157 119 28 126 71 21 4 6 1
## $ Worsened : int 519 135 78 378 84 58 23 4 4
## $ Total : int 2281 2448 2506 1635 1751 1789 73 77 81
## $ X..Improved : chr "70.40%" "89.60%" "95.80%" "69.20%" ...
## $ X..Unchanged: chr "6.90%" "4.90%" "1.10%" "7.70%" ...
## $ X..Worsened : chr "22.80%" "5.50%" "3.10%" "23.10%" ...
# Convert `% Improved`, `% Unchanged`, `% Worsened` to numeric
Sheet2$X..Improved <- as.numeric(sub("%", "", Sheet2$X..Improved))
Sheet2$X..Unchanged <- as.numeric(sub("%", "", Sheet2$X..Unchanged))
Sheet2$X..Worsened <- as.numeric(sub("%", "", Sheet2$X..Worsened))
# Reshape the data for plotting
Sheet2_long <- pivot_longer(Sheet2, cols = c(`X..Worsened`, `X..Unchanged`, `X..Improved`), names_to = "Status", values_to = "Percentage")
# Calculate overall percentages
overall_perc <- colSums(Sheet2[, c("X..Improved", "X..Unchanged", "X..Worsened")])
# Convert overall_perc to percentages
overall_perc <- round(overall_perc / sum(overall_perc) * 100, 1)
# Define colours for each status
status_colours <- c("Improved" = "#336600", "Unchanged" = "#000099", "Worsened" = "#CC0000")
# Plot the pie chart with percentage labels
pie(overall_perc, labels = paste0(overall_perc, "%"), col = status_colours, main = "Overall Status", cex = 0.8)
legend("topright", c("Improved", "Unchanged", "Worsened"), fill = status_colours, bty = "n")
