2012-05-01 18 views
5

Bueno, después de haber decidido conocer algunas de las funciones básicas en R, me encontré con la función sort.list(). Obtengo la función bastante directa sort(), pero no entiendo la idea de sort.list(). He leído que debería ser una función de permutación reorganizando el contenido de mi vector (de alguna manera).¿Cuál es la diferencia entre sort() y sort.list() en R?

Tener el vector;

x <- c(5.0, 3.0, 2.0, 2.2, 0.0, 5.0, 3.0, 2.0, 2.2) 

Operando sort.list(x) salidas

[1] 5 3 8 4 9 2 7 1 6 

¿De dónde vienen? ¿Alguien puede darme una pista, por favor? ¿Y cuál es el uso de esta permutación de todos modos?

Gracias.

Respuesta

7

sort.list, como se dice en ?sort.list, es lo mismo que order, sólo que en lugar de aceptar varios argumentos a través de ..., acepta sólo un vector atómica como argumento.

Presumiblemente, entonces, podría ser una versión "más rápida" o "más simple" de order.

¿De qué sirve? Considere esto:

x <- c(5.0, 3.0, 2.0, 2.2, 0.0, 5.0, 3.0, 2.0, 2.2) 
> x[sort.list(x)] 
[1] 0.0 2.0 2.0 2.2 2.2 3.0 3.0 5.0 5.0 
> x[order(x)] 
[1] 0.0 2.0 2.0 2.2 2.2 3.0 3.0 5.0 5.0 

Al igual que order devuelve una permutación que cuando se utiliza para indexar el vector original se ordena.

Pero también creo que el nombre es confuso.

+0

Gracias! Leí? Sort.list, pero no pude entender la idea. Ahora lo entiendo. Supongo que no capturé la relación (obvia) del valor de retorno de sort.list() a las posiciones del valor en orden ordenado ... – Alex

+0

@Alex Me llevó bastante tiempo tener que buscar 'rank' , 'orden' y 'orden' cada vez que los usé antes de poder mantener en mi cabeza lo que hizo cada uno. – joran

Cuestiones relacionadas