Recorrer nombres
Parte de la sección Lógica y flujo del Journey de R de Coddy. Lección 10 de 64.
Un bucle for sobre names(x) visita cada clave, y x[[key]] proporciona el valor de esa clave:
scores <- c(ada = 91, bo = 78, cy = 85)
for (name in names(scores)) {
cat(name, "scored", scores[[name]], "\n")
}Salida:
ada scored 91
bo scored 78
cy scored 85 Las entradas conservan el orden en el que se añadieron. Recorre sort(names(x)) para obtener el orden alfabético:
scores <- c(cy = 85, ada = 91, bo = 78)
for (name in sort(names(scores))) {
cat(name, scores[[name]], "\n")
}Salida:
ada 91
bo 78
cy 85 Recorrer la entrada y actualizar una tabla de búsqueda cuenta cuántas veces aparece cada valor. La primera vez que se ve una palabra obtiene 1; después, aumenta en 1:
words <- c("red", "blue", "red", "green", "red")
counts <- c()
for (w in words) {
if (w %in% names(counts)) {
counts[w] <- counts[w] + 1
} else {
counts[w] <- 1
}
}
print(counts[["red"]])
print(names(counts))Salida:
[1] 3
[1] "red" "blue" "green"Para construir líneas de salida, recopílalas en un vector dentro del bucle y devuélvelas o imprímelas al final:
scores <- c(ada = 91, bo = 78)
lines <- c()
for (name in names(scores)) {
lines <- c(lines, paste0(name, ": ", scores[[name]]))
}
cat(lines, sep = "\n")Salida:
ada: 91
bo: 78Desafío
FácilCompleta word_counts(words). Devuelve una línea por cada palabra distinta, en orden alfabético, con el formato word: count.
El código proporcionado lee las palabras como una línea separada por espacios e imprime cada línea devuelta.
Pruébalo tú mismo
word_counts <- function(words) {
# Escribe tu código aquí
character(0)
}
# Código de entrada/salida suministrado: mantenlo tal como está
input <- suppressWarnings(readLines(file("stdin")))
cat(word_counts(strsplit(input[1], " ")[[1]]), 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 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