我有以下示例数据帧DF:
Group id absolute
A 123 600
A 1234 300
A 12345 100
B 321 300
B 4321 300
B 5321 400
,并希望进行转换以计算ID所属组中ID的相对份额
Group id share
A 123 60%
A 1234 30%
A 12345 10%
B 321 30%
B 4321 30%
B 5321 40%
我尝试过
DF%>%group_by(Group,id)%>%summarise(share=absolute/colSums(absolute))
答案 0 :(得分:1)
dplyr将在这里提供帮助。您只需要将绝对值除以特定组的绝对值之和即可。
x %>%
group_by(Group_id) %>%
mutate(new = (absolute/sum(absolute)) * 100)
Group_id id absolute new
<fct> <dbl> <dbl> <dbl>
A 123 600 60
A 1234 300 30
A 12345 100 10
B 321 300 30
B 4321 300 30
B 5321 400 40