Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

145
Visualizações
Percentil para un valor

Dada una matriz de números, busco encontrar el percentil de un valor dado.

Encontré este código aquí que parece hacer lo que necesito, pero esperaba poder conseguir que alguien me explicara este código paso a paso:

 const percentile = (arr, val) => (100 * arr.reduce( (acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0 )) / arr.length; // example // percentile([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 6); // 55

Actualizar

Gracias a todos por su ayuda. Encontré una fórmula de percentil que me ayuda aún más a comprender qué está haciendo el código.

Fórmula:

Percentil = [L + ( 0.5 x S ) / N] * 100

  • L = Número de debajo del rango
  • S = Número del mismo rango
  • N = Números totales

Basado en mi nueva comprensión de la función, encuentro esto un poco más fácil de leer:

 /** * **Percentile = ((L + ( 0.5 x S )) / N) * 100** * - L = Number of values **lower** than `value` * - S = Number of same rank * - N = Total numbers */ const percentile = (arr, value) => { const currentIndex = 0; const totalCount = arr.reduce((count, currentValue) => { if (currentValue < value) { return count + 1; // add 1 to `count` } else if (currentValue === value) { return count + 0.5; // add 0.5 to `count` } return count + 0; }, currentIndex); return (totalCount * 100) / arr.length; };
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

La función es equivalente a esta versión más simple.

count contiene el número de elementos a los que val es mayor, más 0,5 por cada elemento al que es igual. Dividiendo este total por el número de elementos es el percentil.

 const percentile = (arr, val) => { let count = 0; arr.forEach(v => { if (v < val) { count++; } else if (v == val) { count += 0.5; } }); return 100 * count / arr.length; } console.log(percentile([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 6));

about 4 years ago · Juan Pablo Isaza Relatório

0

Incluso si el vector no está ordenado, el resultado es correcto. El vector puede contener valores duplicados.

reducir escanear un vector y producir un resultado acumulando resultados parciales dentro de la cuenta

acc se inicializa a 0 (línea 5)

(v < val ? 1 : 0) da como resultado 1 o 0 dependiendo de si v < val. ¿El operador ternario condicional ? : no es necesario porque verdadero se interpreta como 1 y falso como 0, por lo que solo puede escribir + (v < val)

(v === val ? 0.5 : 0) agregue .5 solo para valores iguales a val .

Las líneas 2 y 7 transforman la frecuencia de valores menores (e iguales) en un percentil.

about 4 years ago · Juan Pablo Isaza Relatório

0

Explicación paso a paso

  1. Se define una constante llamada "percentil" y pasa dos argumentos, una matriz "arr" y un valor "val", a la función dada...
  2. Se llama al método reduce() en la matriz. Esto toma una función como argumento (llamada función reductora), así como un argumento opcional initialValue , que se define aquí como 0 (cero).
  3. La función reducer crea una variable numérica vacía "acc". La variable "v" se refiere al valor actual, tomado de la matriz "arr".
  4. El método reduce itera a través de cada valor en arr (también conocido como establece cada elemento en arr como v ). En cada iteración...
  5. La función reductora compara v con val . Si v es menor que val , entonces acc aumenta en 1. Si v es igual a val , entonces acc aumenta en 0,5. (En términos sencillos, esto significa que a medida que la función itera a través de cada elemento en arr , el valor de acc cuenta cuántos elementos son menores o iguales que val ).
  6. Después de que la función haya iterado a través de cada elemento de la matriz, acc se divide por la cantidad de elementos en arr . (En otras palabras, dado que acc es el número de elementos que son menores que val , dividir acc / arr nos da un decimal que representa la proporción de la matriz que es menor que val ).
  7. Ese número se multiplica por 100 para convertir el decimal en un porcentaje.
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda