0Pricing
R Academy · Lección

Ordenación de vectores con sort()

Ordene vectores numéricos y de caracteres de forma ascendente o descendente.

Ordenación de vectores con sort() es una lección gratuita de R Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de R Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de R Academy incluye 4 lecciones en total.

¿Qué hace sort()?

La función sort() ordena por defecto los elementos de un vector de forma ascendente. Funciona con vectores numéricos, de caracteres y lógicos, y devuelve un vector nuevo ordenado sin modificar el original.

scores <- c(42, 7, 95, 13, 67, 31)
sorted_scores <- sort(scores)
print(sorted_scores)

Orden descendente

Pase decreasing = TRUE a sort() para invertir el orden. Esto resulta útil para clasificar resultados de mayor a menor, como las puntuaciones de una tabla de posiciones o las cifras de ventas.

prices <- c(19.99, 5.49, 89.00, 34.50, 12.75)
sort(prices, decreasing = TRUE)

Ordenar vectores de caracteres

Los vectores de caracteres se ordenan lexicográficamente (alfabéticamente). R utiliza la configuración regional del sistema para establecer el orden, por lo que las mayúsculas pueden ordenarse antes que las minúsculas según dicha configuración.

fruits <- c('banana', 'Apple', 'cherry', 'apricot', 'Blueberry')
sort(fruits)

Comportamiento del ordenamiento sensible a mayúsculas y minúsculas

En la mayoría de las configuraciones regionales, las letras mayúsculas se ordenan antes que las minúsculas. Para ordenar sin distinguir entre mayúsculas y minúsculas, convierta primero todo a un mismo formato con tolower() o toupper().

words <- c('Zebra', 'apple', 'Mango', 'banana')
# Case-sensitive (uppercase first)
sort(words)
# Case-insensitive approach
words[order(tolower(words))]

Gestionar valores NA con na.last

De forma predeterminada, sort() elimina los valores NA. Use na.last = TRUE para colocarlos al final o na.last = FALSE para colocarlos al principio. Esto controla dónde aparecen los valores ausentes en el resultado.

data <- c(5, NA, 2, NA, 8, 1)
# Default: NAs removed
sort(data)
# NAs at end
sort(data, na.last = TRUE)
# NAs at beginning
sort(data, na.last = FALSE)

Ordenar vectores lógicos

En orden ascendente, los vectores lógicos se ordenan colocando FALSE (0) antes que TRUE (1). Esto puede resultar útil cuando desea agrupar los valores TRUE/FALSE.

flags <- c(TRUE, FALSE, TRUE, FALSE, FALSE, TRUE)
sort(flags)
sort(flags, decreasing = TRUE)

sort() conserva el tipo del vector

sort() siempre devuelve un vector del mismo tipo que la entrada. Ordenar enteros devuelve enteros, ordenar doubles devuelve doubles y ordenar caracteres devuelve caracteres. También se conserva el atributo de clase.

int_vec <- c(5L, 2L, 8L, 1L, 4L)
result <- sort(int_vec)
print(result)
print(class(result))
print(typeof(result))

sort.int() para ordenar enteros

sort.int() es una función de nivel más bajo diseñada específicamente para ordenar vectores integer o double. Acepta los mismos argumentos que sort(), pero es ligeramente más rápida con vectores numéricos grandes porque evita parte de la sobrecarga del despacho de métodos.

big_vec <- c(100L, 3L, 77L, 22L, 55L, 9L)
# sort.int works like sort for numeric/integer vectors
result <- sort.int(big_vec, decreasing = FALSE)
print(result)

El vector original no cambia

Una propiedad importante de sort() es que no modifica el vector original. Devuelve un vector nuevo y ordenado. Debe asignar el resultado si desea conservar el ordenamiento.

temps <- c(22.5, 18.0, 30.1, 15.3, 27.8)
sorted_temps <- sort(temps)
cat('Original:', temps, '\n')
cat('Sorted:  ', sorted_temps, '\n')

Ordenamiento e indexación juntos

A veces necesita tanto los valores ordenados como sus posiciones originales. Combine sort() con which() o use order() (que se verá en la siguiente lección) para obtener los índices originales junto con los valores ordenados.

exam_scores <- c(78, 92, 65, 88, 71)
sorted <- sort(exam_scores)
cat('Sorted scores:', sorted, '\n')
# Find what rank each original score gets
ranks <- rank(exam_scores)
cat('Rank of each student:', ranks, '\n')

Patrones prácticos con sort()

Un patrón habitual consiste en ordenar los valores únicos de un vector o en obtener los valores más grandes usando sort() junto con head() o tail().

sales <- c(120, 340, 95, 210, 340, 180, 95, 420)
# Unique values in order
sort(unique(sales))
# Top 3 largest
tail(sort(sales), 3)
# Bottom 3 smallest
head(sort(sales), 3)

Comprobación rápida

¿Qué argumento controla si los valores NA aparecen al principio, al final o se eliminan al usar sort()?

Conclusiones clave sobre sort()

Conclusiones clave sobre sort():

  • Use sort(x) para ordenar de forma ascendente y sort(x, decreasing=TRUE) para ordenar de forma descendente
  • Los vectores de caracteres se ordenan alfabéticamente; de forma predeterminada, se distingue entre mayúsculas y minúsculas
  • Controle la ubicación de los NA con na.last = TRUE/FALSE/NA
  • sort() no modifica el vector original: siempre devuelve uno nuevo
  • Use tail(sort(x), n) o head(sort(x), n) para obtener los valores superiores o inferiores
  • sort.int() es una variante más rápida para vectores numéricos o enteros
x <- c(3, 1, NA, 5, 2, NA, 4)
cat('Ascending (no NAs):', sort(x), '\n')
cat('Descending (NAs last):', sort(x, decreasing = TRUE, na.last = TRUE), '\n')

Preguntas frecuentes

¿La lección «Ordenación de vectores con sort()» es gratis?

Sí — el texto completo de «Ordenación de vectores con sort()» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de R Academy, actualiza a CoddyKit PRO. El curso de R Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Ordenación de vectores con sort()»?

Ordene vectores numéricos y de caracteres de forma ascendente o descendente. Practicas R Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar R Academy?

No se requiere experiencia previa. R Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Ordenación de vectores con sort()»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de R Academy?

Sí. Cada lección de R Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Ordenación de vectores con sort()
  2. order() para una ordenación flexible
  3. Asignación de rangos con rank()
  4. Ordenación de data frames por columna
← Volver a R Academy