Как рассчитать относительную долю в R

#r

#r

Вопрос:

Я искал относительную долю, когда в данных указаны общая и промежуточная сумма, мне нужна относительная доля на основе промежуточной суммы.

Мне нужно значение столбца%

Ответ №1:

Одним из вариантов является

 library(dplyr)
df1 %>%
   mutate(Percent = case_when(!Group %in% c("Total", "Sub Total") ~
          100 * Points/Points[Group == "Sub Total"], TRUE ~ NA_real_))
 

-вывод

 #       Group Points  Percent
#1     Total    900       NA
#2 Sub Total    215       NA
#3         A     50 23.25581
#4         B     57 26.51163
#5         C     39 18.13953
#6         D     69 32.09302
 

данные

 df1 <- structure(list(Group = c("Total", "Sub Total", "A", "B", "C", 
"D"), Points = c(900, 215, 50, 57, 39, 69)), class = "data.frame",
row.names = c(NA, 
-6L))