2.4 Ordenación

La reordenación de las filas de una tabla es fundamental para analizar su contenido y, frecuentemente, para detectar problemas en los datos. Por ejemplo, al ordenar los sujetos por edad y echar un vistazo a las primeras filas podemos identificar aquellos que, por error, tienen asociadas edades negativas.

R no dispone de ninguna función de serie para ordenar por una columna (o varias)9. En R, ordenar es seleccionar ordenadamente:

mi.iris <- iris[order(iris$Petal.Length),]

La función order aplicada a un vector devuelve otro vector de la misma longitud que tiene el valor 1 en el primer elemento del vector, 2 en el segundo, etc. Es decir, en el ejemplo anterior, mi.iris tiene como primera fila aquella que corresponde al valor más pequeño de iris$Petal.Length, etc.

Verifica que mi.iris <- iris[order(-iris$Petal.Length),] ordena decrecientemente.

Crea una versión de iris ordenando por especie y dentro de cada especie, por Petal.Length. Ten en cuenta que en R se puede ordenar por dos o más columnas porque order admite dos o más argumentos (véase ?order). Por ejemplo, iris[order(iris\(Petal.Length, iris\)Sepal.Length),] deshace los empates en Petal.Length de acuerdo con Sepal.Length.

Encuentra el día más frío de los que contiene airquality.

Usando el mismo conjunto de datos, encuentra el día más caluroso del mes de junio.


  1. Aunque más adelante veremos extensiones que sí permiten hacerlo