Protocolo:

Strings:

Una cadena es un carácter que está formado por un carácter o contiene una colección de caracteres. Se encierra dentro de las comillas simples ('Esto es una cadena') o dentro de las comillas dobles ("Esto también es una cadena"). Pero en la representación interna de R las cadenas se representan entre comillas dobles.

Reglas para escribir strings en R:

Las siguientes son las reglas para escribir una cadena válida en el lenguaje de programación R:

  • Se deben usar comillas simples o dobles para encerrar un valor de cadena.

str1 = 'Hola Mundo' Ó str1 = "Hola Mundo"

# Como definir un string en R:
message("# Como definir un string en R:")
## # Como definir un string en R:
print(paste("Hola Mundo", "<=", "Asi se define un string común en R con (comillas dobles)"))
## [1] "Hola Mundo <= Asi se define un string común en R con (comillas dobles)"
cadena = "Muy lejos, más allá de las montañas de palabras"

print(paste(cadena, "<=", "Asi se ve como sale esta cadena definida en comillas dobles o simples (sale solo el texto)"))
## [1] "Muy lejos, más allá de las montañas de palabras <= Asi se ve como sale esta cadena definida en comillas dobles o simples (sale solo el texto)"
  • Como solo las comillas simples o las comillas dobles son los caracteres especiales que se utilizan para representar una cadena R, incluirlos en una cadena requiere un cuidado especial.

  • Para incluir una comilla simple dentro de un valor de cadena, rodee la comilla simple con comillas dobles.

  • Para incluir una comilla doble dentro de un valor de cadena, rodee la comilla doble con comillas simples.

  • Se pueden incluir comillas simples o dobles al principio o al final del valor de la cadena tal cual.

Concatenar cadenas:

La concatenación de cadenas hace que las cadenas se unan o fusionen.

La sintaxis para concatenar cadenas en R se realiza mediante:

paste(..., sep= "", collapse = NULL)

paste0(..., collapse = NULL)

El argumento anterior recibe:

  1. ‘…’ : indica uno o más caracteres u objetos que se convierten en vectores de caracteres.

  2. ‘sep’ : indica un carácter de separación

  3. ‘colapso’ : indica un carácter de separación opcional.

# Ejemplo Concatenación de cadenas:
message("\n# Ejemplo Concatenación de cadenas:")
## 
## # Ejemplo Concatenación de cadenas:
c1 = "Soy"
c2 = "Una"
c3 = "Cadena"

cat(c1, "\n")
## Soy
cat(c2, "\n")
## Una
cat(c3, "\n")
## Cadena
## Concatenamos nuestro strings:
message("\n## Cocatenenos nuestro strings:")
## 
## ## Cocatenenos nuestro strings:
print(paste(c1, c2, c3))
## [1] "Soy Una Cadena"
## un Ejemplo de concatenar con diferentes items:
"Haremos concatenar "
## [1] "Haremos concatenar "
# Definamos dos vectores cadenas
vec_str1 <- c(".EPUB", ".PDF", " Fisico")

vec_str2 <- c("Libro")

print(paste(vec_str2,vec_str1,sep="",collapse=" - "))
## [1] "Libro.EPUB - Libro.PDF - Libro Fisico"
  • Nota: paste0() toma un argumento como sep =, ’’ es decir, sin espacio y se usa para su eficiencia.
# Consideremos un ejemplo Paste0():
## Ejemplo con paste0():
message("\n## Ejemplo con paste0():")
## 
## ## Ejemplo con paste0():
"Nota: `paste0()` toma un argumento como sep =, '' es decir, sin espacio y se usa para su eficiencia."
## [1] "Nota: `paste0()` toma un argumento como sep =, '' es decir, sin espacio y se usa para su eficiencia."
message("\nNota: `paste0()` toma un argumento como sep =, '' es decir, sin espacio y se usa para su eficiencia.")
## 
## Nota: `paste0()` toma un argumento como sep =, '' es decir, sin espacio y se usa para su eficiencia.
# Definimos nuestr lista a unir sin espacios:
Pelicula_2021 <- paste0("Mor","tal"," ","Kom","bat")

print(Pelicula_2021)
## [1] "Mortal Kombat"

Encontar Longitud:

  • nchar(char, type, allowNA, keepNA): encontrar el número total de caracteres en un vector dado.

  • nzchar(char): devuelve VERDADERO si la x no está vacía y FALSO si contiene alguna cadena.

# Ejemplo simple sobre nzchar:
message("\n# Ejemplo simple sobre nzchar:")
## 
## # Ejemplo simple sobre nzchar:
print(nzchar("")) # <- Como la cadena esta vacia, devolvera FALSE
## [1] FALSE
# Contiene algo:
message("\n# Contiene algo:")
## 
## # Contiene algo:
print(nzchar("Contiene")) # <- Como  Contiene algo devolvera TRUE
## [1] TRUE
# En paralelo, un espacio cuenta como que la cadena no esta vacia:
message("\n# En paralelo, un espacio cuenta como que la cadena no esta vacia:")
## 
## # En paralelo, un espacio cuenta como que la cadena no esta vacia:
print(nzchar(" "))
## [1] TRUE

El argumento anterior recibe:

  1. char: indica un vector de cracteres

  2. type: Indica uno de los tres tipos, es decir, “width”, “chars”, “bytes”.

  3. allowNA: Indica un valor lógico por defecto como FALSE y en caso de que el resultado no pueda ser calculado no será un error sino que retornará NA.

  4. keepNA: Indica un valor lógico por defecto como FALSE donde se asignará el valor faltante a 2 y nzchar() dará TRUE, pero ambos se asignarán a TRUE también en el caso de los valores faltantes.

# Retomemos algunas cadenas de texto:
message("\n# Retomemos algunas cadenas de texto:")
## 
## # Retomemos algunas cadenas de texto:
print(cadena)
## [1] "Muy lejos, más allá de las montañas de palabras"
len = nchar(cadena)
cat("nchar() devuelve un numero entero", "\n", "El valor de len es =",len)
## nchar() devuelve un numero entero 
##  El valor de len es = 47

Cambiar a mayúsculas y minúsculas:

  • toupper (char): cambia todos los caracteres presentes a mayúsculas.

  • tolower (char): cambia todos los caracteres presentes a minúsculas.

# Cambiemos los caracteres:
message("\n# Cambiemos los caracteres:")
## 
## # Cambiemos los caracteres:
Don_Quijote = "Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.Y, viéndole don Quijote de aquella manera"

# Volvamos el siguiente texto en Mayúscula:
message("\n# Volvamos el siguiente texto en Mayúscula:")
## 
## # Volvamos el siguiente texto en Mayúscula:
print(Don_Quijote)
## [1] "Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.Y, viéndole don Quijote de aquella manera"
# Ahora en Mayúscula:
message("'\n# Ahora en Mayúscula:")
## '
## # Ahora en Mayúscula:
print(toupper(Don_Quijote))
## [1] "Y, VIÉNDOLE DON QUIJOTE DE AQUELLA MANERA, CON MUESTRAS DE TANTA TRISTEZA, LE DIJO: SÁBETE, SANCHO, QUE NO ES UN HOMBRE MÁS QUE OTRO SI NO HACE MÁS QUE OTRO. TODAS ESTAS BORRASCAS QUE NOS SUCEDEN SON SEÑALES DE QUE PRESTO HA DE SERENAR EL TIEMPO Y HAN DE SUCEDERNOS BIEN LAS COSAS; PORQUE NO ES POSIBLE QUE EL MAL NI EL BIEN SEAN DURABLES, Y DE AQUÍ SE SIGUE QUE, HABIENDO DURADO MUCHO EL MAL, EL BIEN ESTÁ YA CERCA. ASÍ QUE, NO DEBES CONGOJARTE POR LAS DESGRACIAS QUE A MÍ ME SUCEDEN, PUES A TI NO TE CABE PARTE DELLAS. Y, VIÉNDOLE DON QUIJOTE DE AQUELLA MANERA, CON MUESTRAS DE TANTA TRISTEZA, LE DIJO: SÁBETE, SANCHO, QUE NO ES UN HOMBRE MÁS QUE OTRO SI NO HACE MÁS QUE OTRO. TODAS ESTAS BORRASCAS QUE NOS SUCEDEN SON SEÑALES DE QUE PRESTO HA DE SERENAR EL TIEMPO Y HAN DE SUCEDERNOS BIEN LAS COSAS; PORQUE NO ES POSIBLE QUE EL MAL NI EL BIEN SEAN DURABLES, Y DE AQUÍ SE SIGUE QUE, HABIENDO DURADO MUCHO EL MAL, EL BIEN ESTÁ YA CERCA. ASÍ QUE, NO DEBES CONGOJARTE POR LAS DESGRACIAS QUE A MÍ ME SUCEDEN, PUES A TI NO TE CABE PARTE DELLAS.Y, VIÉNDOLE DON QUIJOTE DE AQUELLA MANERA"
# Ahora en minúscula:
message("\n# Ahora en minúscula:")
## 
## # Ahora en minúscula:
print(tolower(Don_Quijote))
## [1] "y, viéndole don quijote de aquella manera, con muestras de tanta tristeza, le dijo: sábete, sancho, que no es un hombre más que otro si no hace más que otro. todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. y, viéndole don quijote de aquella manera, con muestras de tanta tristeza, le dijo: sábete, sancho, que no es un hombre más que otro si no hace más que otro. todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.y, viéndole don quijote de aquella manera"

Extraer y remplazar una cadena de caracteres:

substr(char, start, stop): extracción y sustitución de una cadena de caracteres.

Explicando los items que reciben substr:

  1. char: indica una cadena de caracteres.

  2. start: indica un número entero que especifica el valor inicial correspondiente que se devolverá.

  3. stop: indica un número entero que especifica el valor de detención correspondiente que se devolverá.

# Un ejemplo simple substr:
message("\n# Un ejemplo simple substr:")
## 
## # Un ejemplo simple substr:
"Extraigamos de ~Procreando~ la palabra ~creando~"
## [1] "Extraigamos de ~Procreando~ la palabra ~creando~"
message("\nExtraigamos de ~Procreando~ la palabra ~creando~")
## 
## Extraigamos de ~Procreando~ la palabra ~creando~
fe <- substr("Procreando", 4, 10)
cat("Extraimos de Procreando la palabra:", fe)
## Extraimos de Procreando la palabra: creando
# Extraigamos una cadena de caracteres:
message("\n# Extraigamos una cadena de caracteres:")
## 
## # Extraigamos una cadena de caracteres:
"Tomando el texto anterior y extraemos los primeros 1000 terminos"
## [1] "Tomando el texto anterior y extraemos los primeros 1000 terminos"
message("\nTomando el texto anterior y extraemos los primeros 1000 terminos")
## 
## Tomando el texto anterior y extraemos los primeros 1000 terminos
print(Don_Quijote)
## [1] "Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas.Y, viéndole don Quijote de aquella manera"
# Extraemos los primeros 1000 caracteres:
message("\n# Extraemos los primeros 1000 caracteres:")
## 
## # Extraemos los primeros 1000 caracteres:
print(substr(Don_Quijote, 1, 1000))
## [1] "Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me su"

Formatting String:

format(char,width,scientific,justify,nsmall,digits): Convierte un vector de enteros y caracteres a un formato de uso común.

El argumento anterior establece que:

  1. char: puede ser un vector de números enteros o caracteres.

  2. ancho: indica un ancho mínimo de cadena producida.

  3. scientific: el valor predeterminado es FALSO, pero use VERDADERO para la notación científica.

  4. justify: predeterminado a ninguno, pero puede mostrar cadenas a “derecha”, “izquierda” y “centro”.

  5. nsmall: indica el número total después del lugar decimal.

  6. dígitos: indica el número total antes y después del lugar decimal.

# Tomemos un ejemplo de formateo de cadenas para notación científica.
message("\n# Tomemos un ejemplo de formateo de cadenas para notación científica.")
## 
## # Tomemos un ejemplo de formateo de cadenas para notación científica.
# Cambiamos el vector a forma cientifica:
message("\n# Cambiamos el vector a forma cientifica:")
## 
## # Cambiamos el vector a forma cientifica:
formateo <- format(c(14L, 21.3131), scientific = TRUE)
# Vemmos el resultado:
message("\n# Vemmos el resultado:")
## 
## # Vemmos el resultado:
print(formateo)
## [1] "1.40000e+01" "2.13131e+01"