(una paradoja, una paradoja, una paradoja muy ingeniosa)
Esta es la primera parte de una serie de varias partes inspirada en diferentes funciones de R.
La tarea
Dado un conjunto de datos de números enteros positivos, necesito que permite calcular el resumen 5 Número de . Sin embargo, estoy trabajando en grandes conjuntos de datos, por lo que necesito que su código sea lo más pequeño posible, lo que me permite almacenarlo en mi computadora.
El resumen de cinco números consiste en:
- Valor mínimo
- Primer cuartil (Q1)
- Mediana / segundo cuartil (Q2)
- Tercer cuartil (Q3)
- Valor máximo
Hay varias formas diferentes de definir los cuartiles, pero utilizaremos la implementada por R:
Definiciones:
- Mínimo y máximo: los valores más pequeños y más grandes, respectivamente.
- Mediana: el valor medio si tiene un número impar de entradas, y la media aritmética de los dos valores más medios si tiene un número par de entradas. Tenga en cuenta que esto significa que la mediana puede ser un valor no entero. Hemos tenido que calcular la mediana antes .
- Primer y tercer cuartiles: divida los datos en dos mitades, incluido el elemento central en cada mitad si tiene un número impar de entradas, y encuentre el valor medio de cada mitad. La mediana de la mitad inferior es el primer cuartil, y la mediana de la mitad superior es el tercer cuartil.
Ejemplos:
. La mediana es entonces , y la mitad inferior es , produciendo un primer cuartil de , y la mitad superior es , produciendo un tercer cuartil de .
. La mediana es , y la mitad inferior es , produciendo un primer cuartil de , y la mitad superior es , produciendo un tercer cuartil de .
Reglas adicionales:
- La entrada es como una matriz o el equivalente más cercano a su idioma.
- Puede suponer que la matriz está ordenada en orden ascendente o descendente (pero especifique cuál).
- Puede devolver / imprimir los resultados de manera consistente orden y en el formato flexible que desee, pero indique el orden y el formato en su respuesta.
- Funciones incorporadas equivalentes a
fivenum
Se permiten , pero también implemente su propia solución. - Puedes no asume cada uno de los cinco números será un entero.
- Se alientan las explicaciones.
- Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
Casos de prueba generados aleatoriamente
1 1 1 1 1 2 2 2 2 2 3 3 4 4 4 4 4 5 5 5 -> 1 1.5 2.5 4 5
1 2 2 2 4 4 5 5 6 7 7 8 9 9 9 9 9 10 10 10 -> 1 4 7 9 10
2 2 2 6 8 10 15 16 21 22 23 24 26 33 35 38 38 45 46 47 48 -> 2 10 23 38 48
1 2 9 -> 1 1.5 2 5.5 9
1 2 3 3 3 4 9 -> 1 2.5 3 3.5 9
1 1 2 5 7 7 8 8 15 16 18 24 24 26 26 27 27 28 28 28 29 29 39 39 40 45 46 48 48 48 48 49 50 52 60 63 72 73 79 85 86 87 88 90 91 93 94 95 95 97 100 -> 1 25 45 76 100
2 2 4 4 6 8 10 11 13 14 14 15 17 21 23 24 26 27 27 28 28 30 31 33 33 34 36 36 38 38 39 40 41 42 42 43 45 45 47 47 47 47 47 48 48 48 50 51 53 53 55 56 56 56 57 57 58 62 62 63 64 64 65 65 66 67 67 67 68 69 69 71 71 71 74 79 80 81 81 81 82 82 83 83 86 86 86 87 89 94 94 94 95 95 97 98 99 100 100 100 -> 2 33.5 54 76.5 100
1 3 3 4 -> 1 2 3 3.5 4
1 3 3 3 4 -> 1 3 3 3 4
quantile
devuelve un vector con nombre, mientrasfivenum
que no tiene nombre. ¿Quizás sea un problema aguas abajo de dóndefivenum
se usa?