En R se pueden declarar vectores alfanuméricos o de clase carácter:

letras=c("a","b","c","d")
class(letras)
## [1] "character"



Operaciones con vectores de clase character

  • paste(): esta función “pega” variables de clase character; la opción sep indica el símbolo que separa los valores que se han pegado; en caso de que no se quiera dejar ningún símbolo de separación, debe usarse sep="":
paste("A","B",sep="-")
## [1] "A-B"

Podemos pegar vectores (se pegarán término a término: primer valor con primer valor, segundo con segundo, etc.)

codigos <- paste(c("A", "B"), 2:3, sep = "")
codigos
## [1] "A2" "B3"
codigos <- paste(c("A", "B"), 2:3, sep = ".")
codigos
## [1] "A.2" "B.3"

Obsérvese, que con la opción sep se obtiene como resultado un vector de la misma longitud que los vectores que se pegan.

Cuando se utiliza paste sobre un único vector con la opción collapse, se “pegan” todos los términos del vector en un único valor:

paste(c("una", "frase", "simple"), collapse = " ")
## [1] "una frase simple"

Compárese con el efecto de utilizar sep en el comando anterior:

paste(c("una", "frase", "simple"), sep = " ")
## [1] "una"    "frase"  "simple"



Otros ejemplos:

columna.a <- LETTERS[1:5]
columna.a
## [1] "A" "B" "C" "D" "E"
columna.b <- 10:15
columna.b
## [1] 10 11 12 13 14 15
juntar <- paste(columna.a, columna.b, sep = "")
juntar  
## [1] "A10" "B11" "C12" "D13" "E14" "A15"
paste(juntar, collapse=" ")
## [1] "A10 B11 C12 D13 E14 A15"



Selección/asignación de una parte de una cadena de caracteres:

La función substr(x,n1,n2) selecciona los caracteres de x entre las posiciones n1 y n2; permite también realizar asignaciones:

substr("abcdef", 2, 4)
## [1] "bcd"
x <- "ABCDEF"
x
## [1] "ABCDEF"
substr(x, 3, 5) <- c("uv")
x
## [1] "ABuvEF"

Otras funciones de manipulación de caracteres

R dispone de numerosas funciones para manipular caracteres. El paquete stringr amplía estas funciones y, en muchos casos, facilita su uso.



Utiliza la ayuda de R para averiguar la utilidad de las funciones nchar, grep, match, pmatch, tolower, toupper, sub, gsub.








© 2016 Angelo Santana, Carmen N. Hernández, Departamento de Matemáticas   ULPGC