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"