Advertisements
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.
Thank you!
>Solution :
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 [3]
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%