I'm not sure I understand what your problem is, but this is how I would calculate the percentages and make the piecharts
library(tidyverse)
library(forcats)
completeness <- data.frame(
Component = c(2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1),
deb_complet_match_BM = c(5, 1, 1, 2, 4, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1)
)
plot_data <- completeness %>%
mutate(deb_complet_match_BM = fct_recode(as_factor(deb_complet_match_BM),
"Shatter" = "1",
"Medial-Distal Fragment" = "2",
"Split" = "3",
"Proxmial Fragment" = "4",
"Complete" = "5"),
Component = fct_recode(as_factor(Component),
"Upper Componenent" = "1",
"Lower Componenent" = "2")) %>%
group_by(Component) %>%
count(deb_complet_match_BM, name = "percent") %>%
mutate(percent = (percent / sum(percent)) * 100)
plot_data
#> # A tibble: 6 x 3
#> # Groups: Component [2]
#> Component deb_complet_match_BM percent
#> <fct> <fct> <dbl>
#> 1 Upper Componenent Shatter 92.9
#> 2 Upper Componenent Medial-Distal Fragment 7.14
#> 3 Lower Componenent Shatter 62.5
#> 4 Lower Componenent Medial-Distal Fragment 12.5
#> 5 Lower Componenent Proxmial Fragment 12.5
#> 6 Lower Componenent Complete 12.5
plot_data %>%
ggplot(aes(x = "", y = percent, fill = deb_complet_match_BM)) +
geom_col() +
facet_wrap(vars(Component)) +
coord_polar(theta = "y", start=0) +
theme_void() +
theme(axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.ticks = element_blank(),
axis.text.x = element_blank())
