У меня есть данные в следующем формате.Я должен найти сумму значений верхних 25% в каждой группе, сгруппированных по идентификатору.
Если число, соответствующее верхним 25% в группе, является дробью, приведите данные для ceil (большее число) этой дроби
ID Value
3 10
3 83
1 13
2 62
2 26
3 63
3 37
1 17
3 22
3 41
3 45
2 65
3 63
1 45
2 71
3 61
2 97
2 89
3 72
3 16
1 22
Пока я смог получитьверхние n строк с использованием приведенного ниже кода, я не нашел способ получить верхние n% в каждой группе
p2<-group_by(data, ID) %>%
mutate(rank = rank(desc(Value))) %>%
arrange(rank) %>%
filter(rank <= 3)
Ожидаемый результат выглядит примерно так.В данных 4 строки с идентификатором 1 - верхние 25% означают 1 строку.
Есть 6 строк с ID 2 - ceil (0,25 * 6) - 2, поэтому верхние 2 строки.Аналогично, для ID 3 есть 11 строк - ceil (0.25 * 11) - это верхние 3 строки под ID 3.
Пожалуйста, дайте мне знать, как это получить!
ID Value
1 45
2 97
2 89
3 83
3 72
3 65