Como procurar palavras individuais em R

Quando você está trabalhando com texto, muitas vezes você pode resolver problemas se você é capaz de encontrar palavras ou padrões de texto interno. R torna isso fácil de fazer. Imagine que você tem uma lista dos estados nos Estados Unidos, e que pretende descobrir qual desses estados contém a palavra Novo.

Para investigar esse problema, você pode usar o conjunto de dados built-in states.names, que contém - você adivinhou - os nomes dos estados dos Estados Unidos:

> cabeça (state.names) [1] "Alabama" "Alaska" "Arizona" [4] "Arkansas" "California" "Colorado"

De um modo geral, você pode encontrar textos no texto de duas maneiras:

  • Por posição: Por exemplo, você pode dizer R para conseguir os três letras começando na posição 5.

  • Por padrão: Por exemplo, você pode dizer R para obter substrings que correspondem a uma palavra ou padrão específico.

    Um padrão é um pouco como um curinga. Em alguns jogos de cartas, você pode usar o cartão Joker para representar qualquer outro cartão. Da mesma forma, um padrão em R podem conter palavras ou certos símbolos com significados especiais.

Busca por posição no R

Se você sabe a posição exata de um subtexto dentro de um elemento de texto, use o substr () função para retornar o valor. Para extrair o subtexto que começa na terceira posição e pára na sexta posição state.name, use o seguinte:

> Cabeça (substr (state.name, start = 3, pare = 6)) [1] "ABAM" "aska" "izon" "Kans" "LIFO" "lora"

Busca por padrão no R

Para encontrar substrings, você pode usar o grep () função, que leva dois argumentos essenciais:

  • padrão: O padrão que você deseja encontrar.

  • x: O vector de caracteres que você deseja pesquisar.

Suponha que você queira encontrar todos os estados que contêm o padrão Novo. Faça isso deste modo:

> Grep ( "Novo", state.name) [1] 29 30 31 32

O resultado de grep () é um vector numérico com as posições de cada um dos elementos que contêm o padrão de correspondência. Em outras palavras, o elemento 29 de state.name contém a palavra Novo.

> State.name [29] New Hampshire

Ufa, que funcionou! Mas digitação na posição de cada texto correspondente vai ser um monte de trabalho. Felizmente, você pode usar os resultados de grep () diretamente para o subconjunto do original do vetor:

> State.name [grep ( "New", state.name)] [1] "New Hampshire" "New Jersey" [3] "Novo México" "New York"

o grep () função é sensível a maiúsculas - que corresponde apenas texto no mesmo caso (maiúsculas ou minúsculas) como seu padrão de pesquisa. Se você procurar o padrão "novo"Em letras minúsculas, os resultados da pesquisa estão vazios:

> State.name [grep (, state.name "novo")] caracteres (0)

menu