para comenzar a comprender cómo ordenar correctamente los marcos de datos en R
, por supuesto, primero debemos generar un marco de datos para manipular.
Nota: El espaciado no es necesario, pero mejora la legibilidad.,
ejecutando nuestro script run.R
produce la lista de vectores en nuestro marco de datos como se esperaba, en el orden en que se ingresaron:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1
La función Order
aunque quizás no sea el método de clasificación más fácil de escribir en términos de sintaxis, uno que está más fácilmente disponible para todas las instalaciones de R
, debido a ser parte del módulo base
, es la función order
.,
la función order
acepta una serie de argumentos, pero en el nivel más simple el primer argumento debe ser una secuencia de valores o vectores lógicos.,
por ejemplo, podemos usar order()
para simplemente ordenar un vector de cinco números ordenados aleatoriamente con este script:
# Create unordered vectorvector = c(2, 5, 1, 3, 4)# Print vectorvector# Sort in ascending ordervector
ejecutando el script, vemos la salida inicial del vector desordenado, seguido de la lista ahora ordenada después:
$ Rscript run.R 2 5 1 3 4 1 2 3 4 5
# Sort by vector name dataframe
o que estamos haciendo es llamar a nuestro objeto originaldataframe
y pasar el nuevo orden de índice que nos gustaría tener., Este orden de índice se genera utilizando la función with()
, que crea efectivamente un nuevo entorno utilizando los datos pasados en el primer argumento junto con una expresión para evaluar esos datos en el segundo argumento.
por lo tanto, estamos reevaluando los datos dataframe
utilizando la función order()
, y queremos ordenar en función del vector z
dentro de ese marco de datos., Esto devuelve un nuevo orden de índice para los valores del marco de datos, que finalmente se evalúa dentro de dataframe
, dando como resultado nuestro nuevo resultado ordenado.
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z4 strawberry c 13 banana b 22 orange d 31 apple a 4
por Consiguiente, podemos ver nuestra original desordenada de salida, seguido por una segunda salida con los datos ordenados por la columna z
.
Ordenar por Índice de columna
Similar al método anterior, también es posible ordenar en función del número index
de una columna en el marco de datos, en lugar del nombre específico.,
en lugar de usar la función with()
, simplemente podemos pasar la función order()
a nuestra función dataframe
. Indicamos que queremos Ordenar por la columna de index 1
utilizando la sintaxis dataframe
, lo que hace que R
devuelva los niveles (nombres) de ese índice 1
columna., En otras palabras, similar a cuando estábamos en el z
nombre del vector anterior, order
clasificación basada en el vector de valores que están dentro de la columna de índice 1
:
Como era de esperar, tenemos nuestra salida normal seguido por la ordenada de salida en la primera columna:
$ Rscript run.R x y z1 apple a 42 orange d 33 banana b 24 strawberry c 1 x y z1 apple a 43 banana b 22 orange d 34 strawberry c 1
Ordenar por Varias Columnas
En algunos casos, puede ser que desee ordenar por varias columnas. Afortunadamente, hacerlo es muy simple con los métodos descritos anteriormente.,
Para ordenar varias columnas utilizando el vector de nombres, simplemente añadir más argumentos a la etiqueta order()
llamada a la función como antes:
# Sort by vector name then dataframe
del mismo modo, para ordenar por varias columnas basado en el índice de columna, añadir más argumentos a order()
con diferentes índices:
# Sort by column index then dataframe, dataframe ),]
Deja una respuesta