Expressão Regular R:Substitua toda a lista de strings por informações mais específicas
Pergunta
Se eu tiver dados com uma variável categórica que contenha elementos como "Q7", "Q2"
, etc., como faço para substituí-lo por "7 Queen", "2 Queen"
, etc.?
Solução
Para começar, você aproveitará ao máximo fazer uma pergunta se também incluir o código do que já tentou.Dito isto...
Talvez não seja a maneira mais eficiente de resolver esse problema para grandes conjuntos de dados, mas esses dois métodos parecem funcionar muito bem no seu exemplo. example(strsplit)
tem uma ótima função de reversão de strings que podemos usar.
> strReverse <- function(x)
sapply(lapply(strsplit(x, NULL), rev), paste, collapse = "")
> strg <- c("Q7", "Q2")
> GS <- gsub("Q", strReverse(" Queen"), strg)
> strReverse(GS)
[1] "7 Queen" "2 Queen"
Outra forma seria usar paste
> S <- paste0(strReverse(strg), "ueen")
> gsub("Q", " Q", S)
[1] "7 Queen" "2 Queen"
Outras dicas
Regex
(Q)(\d)
Substituir Regex
$2 Queen
Descrição
1st Capturing group (Q)
Q matches the character Q literally (case insensitive)
2nd Capturing group (\d)
\d match a digit [0-9]
g modifier: global. All matches (don't return on first match)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
Observação: Você precisaria de um desses para cada letra
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow