serve Substituir caracteres específicos dentro de cadeias



seo title e title tag (4)

Eu gostaria de remover caracteres específicos de seqüências de caracteres dentro de um vetor, semelhante ao recurso Localizar e substituir no Excel.

Aqui estão os dados que eu começo com:

group <- data.frame(c("12357e", "12575e", "197e18", "e18947")

Eu começo apenas com a primeira coluna; Eu quero produzir a segunda coluna removendo os e 's:

group       group.no.e
12357e      12357
12575e      12575
197e18      19718
e18947      18947

Answer #1

Use o pacote stringi :

require(stringi)

group<-data.frame(c("12357e", "12575e", "197e18", "e18947"))
stri_replace_all(group[,1], "", fixed="e")
[1] "12357" "12575" "19718" "18947"

Answer #2

Você não precisa criar um quadro de dados do vetor de strings, se quiser substituir alguns caracteres nele. Expressões regulares são boas escolhas, já que foram mencionadas por @Andrie e @Dirk Eddelbuettel.

Preste atenção, se você quiser substituir caracteres especiais, como pontos, você deve empregar sintaxe de expressão regular completa, como mostrado no exemplo abaixo:

ctr_names <- c("Czech.Republic","New.Zealand","Great.Britain")
gsub("[.]", " ", ctr_names)

isso vai produzir

[1] "Czech Republic" "New Zealand"    "Great Britain" 

Answer #3

Expressões regulares são seus amigos:

R> ## also adds missing ')' and sets column name
R> group<-data.frame(group=c("12357e", "12575e", "197e18", "e18947"))  )
R> group
   group
1 12357e
2 12575e
3 197e18
4 e18947

Agora use gsub() com o padrão de substituição mais simples possível: string vazia:

R> group$groupNoE <- gsub("e", "", group$group)
R> group
   group groupNoE
1 12357e    12357
2 12575e    12575
3 197e18    19718
4 e18947    18947
R> 

Answer #4

Com uma expressão regular e a função gsub() :

group <- c("12357e", "12575e", "197e18", "e18947")
group
[1] "12357e" "12575e" "197e18" "e18947"

gsub("e", "", group)
[1] "12357" "12575" "19718" "18947"

O que o gsub faz aqui é substituir cada ocorrência de "e" por uma string vazia "" .

Veja ?regexp ou gsub para mais ajuda.





string-substitution