Como extrair uma string entre caracteres específicos em r


Você pode usar os seguintes métodos para extrair uma string entre caracteres específicos em R:

Método 1: Extraia string entre caracteres específicos usando Base R

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

Método 2: Extraia string entre caracteres específicos usando stringr

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

Esses dois exemplos extraem a string entre char1 e char2 em my_string .

Os exemplos a seguir mostram como usar cada método na prática com o seguinte quadro de dados:

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

Exemplo 1: Extraia uma string entre caracteres específicos usando Base R

O código a seguir mostra como extrair a string entre os caracteres team e pro para cada linha na coluna team do quadro de dados:

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

Observe que a nova coluna chamada team_name contém a string entre os caracteres team e pro para cada linha na coluna team do quadro de dados.

Relacionado : Uma introdução ao gsub() em R

Exemplo 2: Extraia uma string entre caracteres específicos usando o pacote stringr

O código a seguir mostra como extrair a string entre os caracteres team e pro para cada linha na coluna team do quadro de dados usando a função str_match() do pacote stringr em R:

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

Observe que a nova coluna chamada team_name contém a string entre os caracteres team e pro para cada linha na coluna team do quadro de dados.

Isso corresponde aos resultados do uso da função gsub() na base R.

Observe que a função str_match() retorna uma matriz na qual a primeira coluna contém as strings originais e a segunda coluna contém a substring de interesse.

Assim, devemos usar [,2] para extrair apenas a segunda coluna da matriz retornada pela função str_match() .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como selecionar colunas contendo uma string específica em R
Como remover caracteres de uma string em R
Como encontrar a localização dos caracteres em uma string em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *