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)