Ordenar vectores
Parte de la sección Lógica y flujo del Journey de R de Coddy. Lección 37 de 64.
sort(x) devuelve los valores de x en orden creciente, y decreasing = TRUE lo invierte. El vector original no cambia:
scores <- c(72, 95, 60, 88)
print(sort(scores))
print(sort(scores, decreasing = TRUE))
print(scores)Salida:
[1] 60 72 88 95
[1] 95 88 72 60
[1] 72 95 60 88El texto se ordena alfabéticamente. El orden exacto depende de la configuración de idioma del sistema: en Coddy, como en muchos servidores, las letras mayúsculas van antes que las minúsculas, por lo que "Zed" se ordena antes que "ada". Convierte con tolower() cuando el uso de mayúsculas y minúsculas no deba importar:
names <- c("cy", "Zed", "ada")
print(sort(names))
print(sort(tolower(names)))Salida:
[1] "Zed" "ada" "cy"
[1] "ada" "cy" "zed"rev(x) invierte el orden actual sin ordenar, y head(x, n) conserva los primeros n elementos, lo que, junto con sort(), proporciona una lista de los valores más altos:
scores <- c(72, 95, 60, 88)
print(rev(scores))
print(head(sort(scores, decreasing = TRUE), 2))Salida:
[1] 88 60 95 72
[1] 95 88Un vector con nombre ordenado mantiene cada nombre con su valor, por lo que los nombres aparecen en el orden de los valores:
stock <- c(tea = 12, jam = 3, oil = 7)
low_first <- sort(stock)
print(names(low_first))
print(low_first[["jam"]])Salida:
[1] "jam" "oil" "tea"
[1] 3Desafío
FácilCompleta top_scores(scores, n). Devuelve las n puntuaciones más altas, de mayor a menor, unidas con , . Si hay menos de n puntuaciones, devuélvelas todas.
El código proporcionado lee las puntuaciones como una línea separada por comas y n, e imprime el valor devuelto.
Pruébalo tú mismo
top_scores <- function(scores, n) {
# Escribe tu código aquí
""
}
# Código de entrada/salida suministrado: déjalo como está
input <- suppressWarnings(readLines(file("stdin")))
cat(top_scores(as.numeric(strsplit(input[1], ",")[[1]]), as.numeric(input[2])), sep = "\n")
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Cadenas a fondo
Subcadenas con substr()Formateo con sprintf()Dividir y unirBuscar cadenasReemplazar textoRepaso - Constructor de nombres de usuario4Matrices
Creación de matricesIndexación de matricesResúmenes de filas y columnasAritmética de matricesRepaso: tabla de asientos2Búsquedas clave-valor
Búsquedas en vectores con nombreComprobar clavesAñadir y eliminar clavesRecorrer nombresRepaso: panel bursátil5Proyecto - Libro de calificaciones
Añadir estudiantesRegistrar calificaciones8Ordenación y agrupación
Ordenar vectoresOrdenar por una claveAgrupar con split()Resúmenes de gruposRepaso - Clasificación3Conjuntos y conteo
Valores únicosOperaciones con conjuntosPruebas de pertenenciaConteo con table()Repaso: invitados al evento6Funciones como valores
Funciones anónimasPasar funcionesDevolver funcionesClausuras con estadoRepaso: reglas de descuento9Marcos de datos
Creación de marcos de datosColumnas y filasFiltrado de filasAdición y ordenaciónRepaso - Informe de ventas12Proyecto: Rastreador de gastos
Registro de gastosGasto totalPractica por tu cuenta: Compilador de R online