web-dev-qa-db-fra.com

Supprimer des chiffres des caractères alphanumériques

J'ai une liste de caractères alphanumériques qui ressemble à ceci:

x <-c('ACO2', 'BCKDHB456', 'CD444')

Je voudrais la sortie suivante:

x <-c('ACO', 'BCKDHB', 'CD')

Aucune suggestion?

# dput(tmp2)

structure(c(432L, 326L, 217L, 371L, 179L, 182L, 188L, 268L, 255L,..., 
), class = "factor")
28
Bfu38

Vous pouvez utiliser gsub pour cela:

gsub('[[:digit:]]+', '', x)

ou

gsub('[0-9]+', '', x)
# [1] "ACO"    "BCKDHB" "CD" 
65
Justin

Une solution utilisant stringi :

# your data
x <-c('ACO2', 'BCKDHB456', 'CD444')

# extract capital letters
x <- stri_extract_all_regex(x, "[A-Z]+")

# unlist, so that you have a vector
x <- unlist(x)

Solution en une seule ligne:

Screenshot on-liner in R

3
altabq

Si votre objectif est simplement de supprimer des numéros, la fonction removeNumbers () supprime les numéros d'un texte. Son utilisation réduit le risque d'erreurs.

library(tm)

x <-c('ACO2', 'BCKDHB456', 'CD444') 

x <- removeNumbers(x)

x

[1] "ACO"    "BCKDHB" "CD"    
2
Cleonidas