I do not know how to properly setup a table while asking a question, but this one is fairly simple so I should be able to explain it anyway.
I have a database such as:
Parent Type Value
A blue 35
A red 65
B blue 23
C blue 22
C blue 35
C yellow 3
What I need is to know is what percentage of each color each parent has, based on the value.
I.e. the parent A has a total value of 35+65 = 100. What I need to obtain is a new column named value percentage with 35% in the blue row and 65% in the red row.
You can use a tidyverse for that:
read.table(text="Parent Type Value A blue 35 A red 65 B blue 23 C blue 22 C blue 35 C yellow 3", header =T) %>% group_by(Parent) %>% mutate(perc = scales::percent(Value/sum(Value))) # A tibble: 6 × 4 # Groups: Parent  Parent Type Value perc <chr> <chr> <int> <chr> 1 A blue 35 35% 2 A red 65 65% 3 B blue 23 100% 4 C blue 22 37% 5 C blue 35 58% 6 C yellow 3 5%