Menu
Coddy logo textTech

Iterar sobre caracteres (strsplit)

Parte de la sección Fundamentos del Journey de R de Coddy — lección 65 de 78.

¿Qué pasa si necesitas procesar cada carácter de una cadena individualmente? A diferencia de los vectores, no puedes recorrer directamente los caracteres de una cadena en R. La función strsplit() resuelve esto dividiendo una cadena en un vector de caracteres.

La función strsplit() toma dos argumentos: la cadena a dividir y el separador. Para dividir en caracteres individuales, use una cadena vacía "" como separador:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

Salida:

[1] "h" "e" "l" "l" "o"

Observa el [[1]] al final. Esto se debe a que strsplit() devuelve una lista, y necesitamos extraer el primer elemento para obtener nuestro vector de caracteres. Una vez que tengas los caracteres como un vector, puedes iterar sobre ellos utilizando las técnicas que ya has aprendido:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

Salida:

[1] "R"

Esta técnica es esencial para tareas como contar caracteres específicos, invertir cadenas o validar la entrada carácter por carácter.

challenge icon

Desafío

Fácil

Recibirás una sola línea de entrada que contiene una palabra (por ejemplo, programming).

Usando strsplit() para dividir la cadena en caracteres individuales:

  1. Divide la palabra de entrada en un vector de caracteres
  2. Recorre cada carácter en el vector
  3. Cuenta cuántas veces aparece la letra "a" en la palabra (sensible a mayúsculas y minúsculas)
  4. Imprime cada carácter en su propia línea usando print()
  5. Después del bucle, imprime el conteo usando cat() con el formato: Count of 'a': X seguido de una nueva línea

Por ejemplo, si la entrada es:

banana

La salida debería ser:

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

Explicación: La palabra "banana" se divide en los caracteres c("b", "a", "n", "a", "n", "a"). Cada carácter es impreso, y la letra "a" aparece 3 veces.

Pruébalo tú mismo

# Leer la entrada
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# Inicializar el contador para la letra 'a'
count_a <- 0

# TODO: Escribe tu código a continuación
# 1. Usa strsplit() para dividir la palabra en caracteres individuales
# 2. Recorre cada carácter en un bucle
# 3. Imprime cada carácter usando print()
# 4. Cuenta cuántas veces aparece 'a'

# Mostrar el conteo de 'a'
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos