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