Я ищу код или функцию, которая присваивает значение 5 самым высоким значениям и 5 самым низким значениям. Например, это может быть набор данных, подобный следующему:
df <- data.frame(
Date = c(rep("2010-01-31",16), rep("2010-02-28", 14)),
Value=c(rep(c(1,2,3,4,5,6,7,8,9,NA,NA,NA,NA,NA,15),2))
)
Редактировать: это просто пример данных. Данные, которые я использую, являются более сложными, и поэтому код должен учитывать переменную длину столбца Date, а также несколько пропущенных значений (NA).
Затем я хотел бы получить значение, назначенное пяти наименьшее значение равно «5w» и «5b» для 5 самых высоких значений. Затем данные должны быть заключены в group_by на основе даты, чтобы процесс повторялся в каждом периоде. Я пытался использовать процентиль, но этот метод не поддерживает постоянное количество значений в каждой скобке. Поэтому я ищу метод, который позволяет число значений в каждой скобке быть постоянным. Если это возможно, было бы неплохо поставить все фирмы в скобки по 5%. Под этим я имею в виду 20 скобок со всеми распределенными фирмами. Это означает, что лучшая скобка будет состоять из 5% всех фирм с самой высокой стоимостью. Значения могут быть 0:19. Т.е. это означает, что ожидаемый результат фирмы в наивысшей стоимости будет равен 19, а фирма в самой низкой скобке получит значение 0.
Заранее спасибо