Promedios de estudiantes
Parte de la sección Lógica y flujo del Journey de R de Coddy. Lección 24 de 64.
Desafío
FácilAñade el comando AVG. Mantén todos los comandos de los pasos anteriores funcionando exactamente como antes.
AVG <name>: respondeno student <name>para un estudiante desconocido,<name>: no gradespara un estudiante sin calificaciones y, en caso contrario,<name>:seguido de la media de sus calificaciones con un decimal, comoada: 88.8.
Una función auxiliar que convierta un vector de puntuaciones en no grades o en la media con formato volverá a ser útil en el siguiente paso.
El código proporcionado pasa cada línea de entrada a gradebook() como un comando y muestra cada respuesta devuelta en su propia línea. Un nombre es una palabra en minúsculas, y la entrada contiene únicamente los comandos descritos hasta ahora.
Pruébalo tú mismo
gradebook <- function(commands) {
grades <- list()
replies <- c()
for (cmd in commands) {
parts <- strsplit(cmd, " ")[[1]]
name <- parts[2]
if (parts[1] == "ADD") {
if (name %in% names(grades)) {
replies <- c(replies, paste(name, "already exists"))
} else {
grades[[name]] <- numeric(0)
replies <- c(replies, paste("added", name))
}
} else if (parts[1] == "GRADE") {
if (!(name %in% names(grades))) {
replies <- c(replies, paste("no student", name))
} else {
score <- as.numeric(parts[3])
grades[[name]] <- c(grades[[name]], score)
replies <- c(replies, paste("recorded", score, "for", name))
}
}
}
replies
}
# Código de entrada/salida suministrado: déjalo tal como está
input <- suppressWarnings(readLines(file("stdin")))
cat(gradebook(input), sep = "\n")
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 calificaciones3Conjuntos 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