#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))