R proporciona una forma diferente de ordenar los datos, ya sea en orden ascendente o descendente; los analistas de datos y los científicos de datos utilizan order()
, sort()
y paquetes como dplyr
para ordenar los datos en función de la estructura de los datos obtenidos.
order()
puede ordenar vectores, matrices y también un dataframe en orden ascendente y descendente con su ayuda, lo que se muestra en la sección final de este tutorial.
Sintaxis de order()
La sintaxis de order()
se muestra a continuación:
order(x, decreasing = TRUE or FALSE, na.last = TRUE or FLASE, method = c("auto", "shell", "quick", "radix"))
El argumento anterior en order()
afirma que:
- x: datos-cuadros, matrices o vectores
- decreasing: valor booleano; TRUE ordena en orden descendente o FALSE ordena en orden ascendente.
- na.last: valor booleano; TRUE entonces los índices NA se ponen al final o FALSE THEN NA los índices NA se ponen primero.
- method: método de clasificación que se va a utilizar.
order()
en R
Veamos un ejemplo de order()
en acción.
A continuación, el código contiene la variable x
, que incluye un vector con una lista de números. Los números se ordenan según su índice utilizando order(x)
.
y = c(4,12,6,7,2,9,5)
order(y)
El código anterior da el siguiente resultado:
5 1 7 3 4 6 2
Aquí el order()
ordenará los números dados según su índice en orden ascendente. Puesto que el número 2 es el más pequeño, que tiene un índice como cinco y el número 4 es el índice 1, y de manera similar, el proceso avanza siguiendo el mismo patrón.
y = c(4,12,6,7,2,9,5)
y[order(y)]
El código anterior da el siguiente resultado:
2 4 5 6 7 9 12
Aquí se realiza la indexación de orden, donde los valores reales se imprimen en orden ascendente. Los valores se ordenan según el índice utilizando order()
y después de cada valor al que se accede utilizando y[some-value]
.
Vector de ordenación utilizando diferentes parámetros en order()
Veamos un ejemplo en el que los conjuntos de datos contienen el valor como símbolo NA(No disponible).
order(x,na.last=TRUE)
x <- c(8,2,4,1,-4,NA,46,8,9,5,3)
order(x,na.last = TRUE)
El código anterior da el siguiente resultado:
5 4 2 11 3 10 1 8 9 7 6
Aquí el order()
también ordenará la lista de números dada según su índice en orden ascendente. Como NA está presente, su índice se colocará en último lugar, donde 6 se colocará en último lugar debido a na.last=TRUE
.
order(x,na.last=FALSE)
order(x,na.last=FALSE)
El código anterior da el siguiente resultado:
6 5 4 2 11 3 10 1 8 9 7
Aquí el order()
también ordenará la lista de números dada según su índice en orden ascendente. Como NA está presente, su índice, que es 6, se colocará en primer lugar debido a na.last=FALSE
.
order(x,decreasing=TRUE,na.last=TRUE)
order(x,decreasing=TRUE,na.last=TRUE)
El código anterior da el siguiente resultado:
7 9 1 8 10 3 11 2 4 5 6
Aquí order()
ordenará una lista dada de números según su índice en orden descendente debido a decreasing=TRUE
: 46. El mayor se coloca en el índice 7, y los demás valores se ordenan de forma decreciente. Como NA está presente, el índice 6 se colocará en último lugar debido a na.last=TRUE
.
order(x,decreasing=FALSE,na.last=FALSE)
order(x,decreasing=FALSE,na.last=FALSE)
El código anterior da el siguiente resultado:
6 5 4 2 11 3 10 1 8 9 7
Aquí está presente NA cuyo índice es 6 se colocará en primer lugar debido a na.last=FALSE
. order()
ordenará una lista dada de números según su índice en orden ascendente debido a decreasing=FALSE
: -4, que es el más pequeño colocado en el índice 5, y los demás valores se ordenan de forma creciente.
Empieza a aprender R gratis
Intermediate R
Ordenar un dataframe utilizando order()
Vamos a crear un dataframe cuyo valor poblacional sea 10. La variable género consta de los valores vectoriales 'male' y 'female', de los que se pueden obtener 10 valores de muestra con ayuda de sample()
, mientras que replace = TRUE
sólo generará los valores únicos. Del mismo modo, la edad consta de un valor de 25 a 75, junto con un grado de posible valor como c("MA", "ME", "BE", "BSCS"), que de nuevo generará valores únicos.
Tarea: Ordenar los datos dados en orden ascendente en función de la edad de la población.
Nota: Los datos de muestra que se muestran pueden diferir si intentas utilizarlos en tu máquina local, porque cada vez que se ejecuta un código se crea un dataframe único.
population = 10
gender=sample(c("male","female"),population,replace=TRUE)
age = sample(25:75, population, replace=TRUE)
degree = sample(c("MA","ME","BE","BSCS"), population, replace=TRUE)
(final.data = data.frame(gender=gender, age=age, degree=degree))
gender | age | degree |
---|---|---|
male | 40 | MA |
female | 57 | BSCS |
male | 66 | BE |
female | 61 | BSCS |
female | 48 | MA |
male | 25 | MA |
female | 49 | BE |
male | 52 | ME |
female | 57 | MA |
female | 35 | MA |
El código anterior da la siguiente salida, que muestra un dataframe recién creado.
gender age degree
male 40 MA
female 57 BSCS
male 66 BE
female 61 BSCS
female 48 MA
male 25 MA
female 49 BE
male 52 ME
female 57 MA
female 35 MA
Vamos a ordenar la trama de datos en orden ascendente utilizando order()
a partir de la variable edad.
order(final.data$age)
El código anterior da el siguiente resultado:
6 10 3 9 5 8 4 2 7 1
Como la edad de 25 años está en el índice 6, seguida de la edad de 35 años en el índice 10 y, de forma similar, todos los valores relacionados con la edad están ordenados de forma ascendente.
El código siguiente contiene el orden []
con la variable edad, se utiliza para ordenar en orden ascendente donde también se imprime el género, junto con la información de la titulación.
final.data[order(final.data$age),]
gender | age | degree | |
---|---|---|---|
6 | male | 25 | MA |
10 | female | 35 | MA |
1 | male | 40 | MA |
5 | female | 48 | MA |
7 | female | 49 | BE |
8 | male | 52 | ME |
2 | female | 57 | BSCS |
9 | female | 57 | MA |
4 | female | 61 | BSCS |
3 | male | 66 | BE |
El código anterior da el siguiente resultado:
gender age degree
6 male 25 MA
10 female 35 MA
1 male 40 MA
5 female 48 MA
7 female 49 BE
8 male 52 ME
2 female 57 BSCS
9 female 57 MA
4 female 61 BSCS
3 male 66 BE
La salida anterior muestra que la edad se ordena de forma ascendente junto con su correspondiente género y se obtiene la información del título.
¡Enhorabuena!
Enhorabuena, ¡has llegado al final de este tutorial!
Has aprendido sobre la ordenación utilizando order()
con su argumento con los ejemplos y vector de ordenación utilizando diferentes parámetros y ejemplo final, que contiene la ordenación del dataframe.
Para conocer más detalles sobre este tema, puedes visitar Función orden en R
Si quieres aprender más sobre R, sigue el curso de Introducción a R de DataCamp.