У меня есть пример df, как показано ниже:
df_test<- data.frame("Group.Name"=c("Group1","Group2","Group1","Group2","Group2","Group2","Group1"),
"Sub_group_name"=c("A","A","B","C","D","E","C"),
"Total%"=c(35,26,10,9,5,11,13))
Оригинальный df довольно большой, и о нем нужно помнить:
- Есть только 2 группы "Group1"and" Group2 "
- В одной группе несколько подгрупп, приведенный выше df показывает некоторые из подгрупп
- Общий% для подгруппы group + составит до 100%.В приведенном выше это не так, поскольку это просто образец.Таким образом, для
Group1
все подгруппы, такие как A, B, C
и т. Д., Прибавят до 100 и т. Д. Для " Group2 ".Подгруппы для Group1 и Group2 будут более или менее одинаковыми
Ask:
Мне нужносоздайте столбец с именем Category
, который позволяет работать в диапазоне Total%
на уровне Group.Name
.Условия для создания нового столбца:
Для каждого Group.Name
, где Total%
наивысший, столбец категории соответствует имени Sub_group_name
.
Для каждых Group.Name
и Total%
между 10-30 столбцом категории является " New_Group1 ".
Для каждого Group.Name
и Total%
меньше 10 столбец категории имеет значение " New_Group2 ".
Ожидаемый результат:
df_output<- data.frame("Group.Name"=c("Group1","Group2","Group1","Group2","Group2","Group2","Group1"),
"Sub_group_name"=c("A","A","B","C","D","E","C"),
"Total%"=c(35,26,10,9,5,11,13),
"category"=c("A","A","New_Group1","New_Group1","New_Group2","New_Group1","New_Group1"))