¿Qué función podría usar en R para encontrar los n valores más grandes de un vector?

No utilizo R, por lo que no puedo responder la pregunta como se me preguntó, pero dado que aparentemente se está refiriendo a vectores aleatorios, estoy seguro de que la distribución de probabilidad de las variables aleatorias es esencial para una respuesta correcta ( por lo menos, no patológico), como es el número total de vectores aleatorios, diga N , si desea el n más grande. También supongo que no está hablando de los n componentes más grandes de un solo vector aleatorio, y que ninguno de los componentes de ningún vector está correlacionado con ningún otro.

También supongo que está hablando de valores esperados, no de las propiedades de un conjunto de vectores pseudoaleatorios ya generados. En el último caso, la respuesta sobre ordenar y contar es todo lo que necesita.

Si está hablando de vectores reales (en oposición a complejos) en un espacio tridimensional y con componentes vectoriales que son gaussianos, entonces la distribución de chi-cuadrado con tres grados de libertad es la distribución relevante, y parece que podría simplemente calcular N veces la distribución acumulativa para esa variable aleatoria de chi-cuadrado evaluada en n / N. Tenga en cuenta que esta es en realidad la n mayor magnitud al cuadrado , pero la magnitud al cuadrado está en correspondencia uno a uno con la magnitud.

Me voy de viaje, así que si hay más preguntas, responderé con bastante lentitud. ¡Espero que ayude!

No estoy seguro de si hay una función específica que haga eso en R. Pero el resultado deseado se puede lograr fácilmente. Aunque esto podría no ser computacionalmente óptimo.

Digamos que mi vector son 100 números aleatorios.

my_vec <- runif (100, min = 1, max = 100)

Puede usar la función sort () para ordenarlos en orden descendente

my_vec_sorted <- sort (my_vec, decreing = TRUE)

Ahora solo vea los primeros N (aquí estoy usando N = 10) valores más grandes como los primeros N índices.

my_vec_sorted [1:10]

Esto generaría algo como esto:

[1] 99.47905 99.14266 98.56285 97.58873 97.58166 96.89672 96.12972 [8] 95.41678 95.36415 94.56594

Solución perversa: x [rango (-x) <= 10]

Ordénelo, inviértalo y tome los primeros n valores.

Prueba esto

head (ordenar (su_vector, VERDADERO), n)

¡Gracias!