Protocolo:
Daniel Felipe Villa Rengifo
Lenguaje: R
Tema: Manejo de strings en R
Fuentes:
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.
strings
en R:Las siguientes son las reglas para escribir una cadena válida en el lenguaje de programación R:
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.
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:
‘…’ : indica uno o más caracteres u objetos que se convierten en vectores de caracteres.
‘sep’ : indica un carácter de separación
‘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"
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"
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:
char
: indica un vector de cracteres
type
: Indica uno de los tres tipos, es decir, “width”, “chars”, “bytes”.
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.
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
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"
substr(char, start, stop)
: extracción y sustitución de una cadena de caracteres.
Explicando los items que reciben substr
:
char
: indica una cadena de caracteres.
start
: indica un número entero que especifica el valor inicial correspondiente que se devolverá.
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"
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:
char
: puede ser un vector de números enteros o caracteres.
ancho
: indica un ancho mínimo de cadena producida.
scientific
: el valor predeterminado es FALSO, pero use VERDADERO para la notación científica.
justify
: predeterminado a ninguno, pero puede mostrar cadenas a “derecha”, “izquierda” y “centro”.
nsmall
: indica el número total después del lugar decimal.
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"