Vetores de Texto

Criação


estados <- c("Paraná", "Goiás", "Ceará", "Minas Gerais")
estados
## [1] "Paraná"       "Goiás"        "Ceará"        "Minas Gerais"


Classe e tipo


class(estados)
## [1] "character"


typeof(estados)
## [1] "character"


Teste


É character?

is.character(estados)
## [1] TRUE


Conversão


De numeric para character:

num <- c(1,2,3,4,5)
char <- as.character(num)
char
## [1] "1" "2" "3" "4" "5"


class(char)
## [1] "character"


De character para numeric (formato numérico):

char <- c("1", "2", "3", "4", "5")
num <- as.numeric(char)
num
## [1] 1 2 3 4 5


class(num)
## [1] "numeric"


De character para numeric (formato de texto):

char <- c("Dólar", "Euro", "Real")
num <- as.numeric(char)
## Warning: NAs introduced by coercion
num
## [1] NA NA NA


class(num)
## [1] "numeric"


Contagem de caracteres


estados
## [1] "Paraná"       "Goiás"        "Ceará"        "Minas Gerais"


num_caract <- nchar(estados)
num_caract
## [1]  6  5  5 12


class(num_caract)
## [1] "integer"


Espaços


zero_espaco <- ""
nchar(zero_espaco)
## [1] 0


um_espaco <- " "
nchar(um_espaco)
## [1] 1


dois_espacos <- "  "
nchar(dois_espacos)
## [1] 2


tres_espacos <- "   "
nchar(tres_espacos)
## [1] 3


Tratamento de texto


Concatenção


nomes <- c("Paulo", "Ana", "Carla")
sobrenomes <- c("Oliveira", "Silva", "Ferreira")
nomes_completos <- paste(nomes, sobrenomes, sep = " ")
nomes_completos
## [1] "Paulo Oliveira" "Ana Silva"      "Carla Ferreira"


Substituição


Substituindo “da Inglaterra” por “do Reino Unido”:

frases <- c("Londres é a capital da Inglaterra.", "Elizabeth é a rainha da Inglaterra.")
frases
## [1] "Londres é a capital da Inglaterra."  "Elizabeth é a rainha da Inglaterra."


gsub(pattern = "da Inglaterra", replacement = "do Reino Unido", x = frases)
## [1] "Londres é a capital do Reino Unido." 
## [2] "Elizabeth é a rainha do Reino Unido."


Transformação


Transformando para letras maiúsculas:

estados <- c("sp", "mg", "ba", "am")
estados
## [1] "sp" "mg" "ba" "am"


toupper(estados)
## [1] "SP" "MG" "BA" "AM"


Transformando para letras minúsculas:

animais <- c("CARNEIRO", "Vaca", "ElEfAnTe")
animais
## [1] "CARNEIRO" "Vaca"     "ElEfAnTe"


tolower(animais)
## [1] "carneiro" "vaca"     "elefante"


Aparação


Aparando os espaços das extremidades:

capitais <- c(" Buenos Aires ", " Montevideo ")
capitais
## [1] " Buenos Aires " " Montevideo "


trimws(capitais)
## [1] "Buenos Aires" "Montevideo"


Separação


Separando o texto em função do espaço:

titulo <- "Fundamentos da Linguagem R"
titulo
## [1] "Fundamentos da Linguagem R"


titulo_sep <- strsplit(x = titulo, split = " ")
titulo_sep
## [[1]]
## [1] "Fundamentos" "da"          "Linguagem"   "R"


class(titulo_sep)
## [1] "list"


Extração


Extraindo os 2 primeiros caracteres:

codigos <- c("01-1234", "02-4321", "03-5678", "04-8765")
codigos
## [1] "01-1234" "02-4321" "03-5678" "04-8765"


codigos <- substr(x = codigos, start = 1, stop = 2)
codigos
## [1] "01" "02" "03" "04"


Extraindo os 4 últimos caracteres:

codigos <- c("01-1234", "02-4321", "03-5678", "04-8765")
codigos <- substr(x = codigos, start = 4, stop = 8)
codigos
## [1] "1234" "4321" "5678" "8765"


Identificando a posição do caracter “/”:

codigos <- c("003/2020", "1242/2020", "13579/2020")
as.numeric(regexpr(pattern = "/", text = codigos))
## [1] 4 5 6


Extraindo o texto antes do caracter “/”:

posicao_barra <- as.numeric(regexpr(pattern = "/", text = codigos))
prefixos <- substr(x = codigos, 
                   start = 1,
                   stop = posicao_barra - 1)
prefixos
## [1] "003"   "1242"  "13579"


Criando a função esquerda() como a do Excel:

esquerda <- function(texto, n) {
  out <- substr(x = texto, 
                start = 1, 
                stop = n)
  return(out)
}


Extraindo os 2 primeiros caracteres utilizando a função esquerda():

codigos <- c("01-1234", "02-4321", "03-5678", "04-8765")
esquerda(texto = codigos, n = 2)
## [1] "01" "02" "03" "04"


Criando a função direita() como a do Excel:

direita <- function(texto, n) {
  out <- substr(x = texto, 
                start = nchar(texto) - n + 1,
                stop = nchar(texto))
  return(out)
}


Extraindo os 4 últimos caracteres utilizando a função direita():

codigos <- c("01-1234", "02-4321", "03-5678", "04-8765")
direita(texto = codigos, n = 4)
## [1] "1234" "4321" "5678" "8765"
Anterior
Próximo