# 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")