Ordenação em R: Classificação (Parte II)

R, uma linguagem de programação usada para Estatística e Análise de Dados, possui a função rank, que retorna a classificação de cada valor em um vetor.

Por exemplo:

my_arr = [1, 3, 3, 9, 8]
// Ranked would be: [0, 1.5, 1.5, 4, 3]

Quando dois ou mais valores têm a mesma classificação, eles recebem a média de suas posições. Aqui, os dois 3 têm as posições 1 e 2, então ambos recebem a classificação 1.5.

Implemente a função rank() para que ela funcione da mesma forma que em R.

Exemplos

rank([9, 1, 4, 5, 4]) ➞ [4.0, 0.0, 1.5, 3.0, 1.5]

rank(["z", "c", "f", "b", "c"]) ➞ [4.0, 1.5, 3.0, 0.0, 1.5]

Observações

  • Espere apenas números e caracteres alfabéticos minúsculos.
  • Encontre a Parte I: Ordem aqui.
  • Os vetores em R são semelhantes a um array. Embora os vetores em R sejam indexados a partir de 1, sua função deve ser indexada a partir de 0. Outras diferenças entre vetores e arrays serão ignoradas no escopo deste desafio.