Pular para o conteúdo principal

Tutorial de strings em R

Aprenda sobre strings em R: regras, concatenação, propriedades essenciais, extração e substituição de trechos e formatação de strings.
· 8 min leer

Explore com IA

Uma string é um valor de texto formado por um ou mais caracteres. Ela pode ser delimitada por aspas simples ('Isto é uma string') ou aspas duplas ("Isto também é uma string"). Porém, internamente, as strings em R são representadas entre aspas duplas.

Neste tutorial, você vai aprender sobre strings em R e veremos os seguintes tópicos:

  1. Primeiro, você vai conhecer as strings em R e as regras para trabalhar com strings em R.
  2. Depois, vamos abordar a concatenação de strings em R e outras propriedades importantes.
  3. Também veremos em detalhes como extrair e substituir trechos de uma string.
  4. Por fim, veremos como formatar strings, convertendo qualquer vetor de entrada em um formato bem apresentado.

Regras para strings em R

    1. A string que começa com aspas simples precisa terminar com aspas simples. Você pode incluir aspas duplas dentro dela e, usando a sequência de escape ('\'), a aspa simples também pode fazer parte da string.

Por exemplo: 'cars', 'merry"s' , 'merry\'s' são strings válidas em R.

    1. A string que começa com aspas duplas precisa terminar com aspas duplas. Você pode incluir aspas simples dentro dela e, usando a sequência de escape ('\'), a aspa dupla também pode fazer parte da string.

Por exemplo: "cars" , "merry's", "merry\"s" também são strings válidas em R.

Concatenação de strings

Concatenar strings significa unir ou combinar várias strings.

A sintaxe para concatenar strings em R é:
paste(..., sep = "",collapse = NULL)
paste0(..., collapse = NULL)

Os argumentos de paste indicam:

  1. '...' - Um ou mais caracteres ou objetos que serão convertidos em vetores de caracteres.
  2. 'sep' - O caractere usado como separador entre elementos.
  3. 'collapse' - Um separador opcional para colapsar o resultado em uma única string.

Por exemplo, considere o código abaixo, em que as variáveis contêm strings de caracteres: my.var1 = "I" my.var2 = "eat" my.var3 = "rice" print(paste(my.var1,my.var2,my.var3))

O código acima gera uma única string, como abaixo:

"I eat rice"

Agora, um exemplo em que as variáveis contêm vetores que são convertidos em uma única string:

my.var1 = c('Book','Copy') my.var2 = c('Pen','Chair') print(paste(my.var1,my.var2,sep=" ",collapse="-"))

O código acima produz a seguinte saída:

"Book Pen-Copy Chair"

Nesse caso, a saída inclui um '-' entre Pen e Copy por causa do argumento collapse, que define a separação entre dois vetores diferentes. Já o sep inclui um espaço (' '), separando os itens individualmente.

Vamos ver um exemplo com paste0()

paste0() usa, por padrão, sep = '' (sem espaço) e é útil quando você quer eficiência e nenhum separador.

state.name <- paste0('Mary','l','and')
print(state.name)

A saída do código acima está abaixo: todos os caracteres são unidos em um só, sem espaço definido por sep.

"Maryland"

Encontrando o comprimento

nchar(char,type, allowNA,keepNA) - Retorna o número total de caracteres em um vetor.
nzchar(char) - Retorna TRUE se x não é vazio e FALSE se for uma string vazia.

Os argumentos indicam:

  1. char - Um vetor de caracteres.
  2. type - Um dentre três tipos: "width", "chars" ou "bytes".
  3. allowNA - Lógico, padrão FALSE; se o resultado não puder ser calculado, não gera erro e retorna NA.
  4. keepNA - Lógico, padrão FALSE; quando TRUE, trata valores ausentes de forma a mapeá-los conforme a documentação (nzchar() retorna TRUE em certos casos envolvendo ausentes).

No exemplo abaixo, determinamos o comprimento de um vetor de caracteres: my.char = nchar("hello") print(my.char)

O exemplo acima retorna '5' como saída, pois há cinco caracteres no vetor.

Para o uso de nzchar(), veja o código abaixo:

new.char = nzchar("monkey") print(new.char)

O código acima retorna o valor lógico 'TRUE' porque 'new.char' não é uma string vazia.

my.char = nzchar("") print(my.char)

O código acima retorna o valor lógico 'FALSE' porque 'my.char' é uma string vazia.

Convertendo para maiúsculas e minúsculas

toupper(char) - Converte todos os caracteres para maiúsculas.
tolower(char) - Converte todos os caracteres para minúsculas.

Exemplo para converter em maiúsculas: my.var = toupper("I'm changed to upper case") print(my.var)

O código acima gera a saída abaixo, em que cada caractere na variável 'my.var' foi convertido para maiúscula.

"I'M CHANGED TO UPPER CASE"

Exemplo para converter em minúsculas: my.var = tolower("I'm changed to lower case") print(my.var)

O código acima gera a saída abaixo, em que cada caractere na variável 'my.var' foi convertido para minúscula.

""i'm changed to lower case""

Extraindo e substituindo trechos de uma string

substr(char, start, stop): extrai ou substitui parte de uma string.

Os argumentos indicam:

  1. char - Uma string de caracteres.
  2. start - Um inteiro que especifica a posição inicial a ser retornada.
  3. stop - Um inteiro que especifica a posição final a ser retornada.

Veja um exemplo de extração de caracteres.

final.value <- substring('Remaining', 3, 9)
print(final.value)

No código acima, 'Remaining' é uma string cujo primeiro índice é 'R' (inteiro 1). O último caractere é 'g', com índice 9.

O código acima produz a saída onde o valor inicial 3 corresponde ao caractere ' m ' em 'Remaining'. Da mesma forma, os demais caracteres até o inteiro 9 (inclusivo), correspondendo a 'g', são impressos.

"maining"

Agora, um exemplo em que os caracteres são substituídos.

y = "Remaining"
substring(y, 3, 5) <- "der"
print(y)

O código acima mostra a saída na qual o intervalo de 3 a 5 em y é substituído por 'der'.

"Rederning"

substring(char, first, last = 1000000L): extrai ou substitui parte de uma string.
Os argumentos indicam:

  1. char - Uma string de caracteres.
  2. first - Um inteiro que especifica a primeira posição a ser retornada.
  3. last - Um inteiro que especifica a última posição a ser retornada, com valor padrão 1000000L.
my.value <- substring('Remaining', 3, 8)
print(my.value)

O código acima produz a saída em que o valor inicial 3 corresponde ao caractere ' m ' em 'Remaining'. Os demais caracteres até o inteiro 8 (inclusivo), cujo caractere correspondente é 'n', são impressos.

"mainin"

Outro exemplo de substituição de caracteres:

y = "newcharacter"
substring(y, 6,9) <- "???"
print(y)

No código acima, o intervalo de 6 a 9 em y é substituído por '???'.

"newch???cter"

Formatando strings

format(char,width,scientific,justify,nsmall,digits): converte um vetor de inteiros e/ou caracteres para um formato amplamente utilizado.

Os argumentos indicam:

  1. char - Pode ser um vetor de inteiros ou de caracteres.
  2. width - Largura mínima da string produzida.
  3. scientific - Padrão FALSE; use TRUE para notação científica.
  4. justify - Padrão none; pode alinhar strings à "right", "left" ou "center".
  5. nsmall - Número total de casas após a vírgula decimal.
  6. digits - Número total de dígitos considerados antes e depois da vírgula.

Exemplo de formatação em notação científica:

my.var <- format(c(2, 19.267), scientific = TRUE)
print(my.var)

O código acima gera a saída em notação científica (exponencial):

"2.0000e+00" "1.9267e+01"

A saída "1.9267e+01" = 1,9267 × 10 (à potência 1) = 1,9267 × 10 = 19,267.

Exemplo de formatação usando nsmall:

my.var <- format(92.56656577, nsmall = 6)
print(my.var)

O código acima gera a saída abaixo, com 6 casas decimais.

"92.566565"

Exemplo de formatação usando digits:

my.var <- format(102.848793834, digits = 7)
print(my.var)

O código acima gera a saída abaixo, em que o total de dígitos considerados (antes e depois da vírgula) é 7.

"102.8488"

São incluídos sete dígitos; o último deveria ser 7, mas, como o dígito anterior (9) é maior que 7, ocorre arredondamento para 8.

Exemplo de formatação com alinhamento à direita:

my.var <- format('Running', justify = 'r',width = 9)
print(my.var)

O código acima gera a saída abaixo, onde 'Running' é alinhado à direita com espaçamento definido por width.

"  Running"

Exemplo de formatação com alinhamento centralizado:

my.var <- format('Running', justify = 'c',width = 12)
print(my.var)

O código acima gera a saída abaixo, onde 'Running' é centralizado, com espaços à esquerda e à direita.

"  Running   "

Parabéns

Parabéns, você chegou ao fim deste tutorial!

Você aprendeu sobre strings em R: regras, concatenação, propriedades essenciais, extração e substituição de trechos e formatação de strings.

Se quiser aprender mais sobre R, faça o curso Introduction to R da DataCamp.

Confira também nosso tutorial Data Types in R.

Temas

Relacionado

Tutorial

Tutorial de strings em Python

Tutorial

Tutorial de Pipes em R para iniciantes

Tutorial

Um guia para expressões regulares do R