95 votes

Supprimer la partie de la chaîne après "."

Je travaille avec les numéros d'accession des séquences de référence du NCBI, comme les variables. a :

a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2")  

Pour obtenir des informations à partir du paquet biomart, je dois supprimer le fichier .1 , .2 etc. après les numéros d'accès. Je fais normalement cela avec ce code :

b <- sub("..*", "", a)

# [1] "" "" "" "" "" ""

Mais comme vous pouvez le constater, ce n'est pas la bonne méthode pour cette variable. Quelqu'un peut-il m'aider ?

134voto

Hansi Points 660

Tu dois juste t'échapper de la période :

a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2")

gsub("\\..*","",a)
[1] "NM_020506"    "NM_020519"    "NM_001030297" "NM_010281"    "NM_011419"    "NM_053155"

12voto

zx8754 Points 13573

Nous pouvons prétendre qu'il s'agit de noms de fichiers et supprimer extensions :

tools::file_path_sans_ext(a)
# [1] "NM_020506"    "NM_020519"    "NM_001030297" "NM_010281"    "NM_011419"    "NM_053155"

10voto

rengis Points 4733

Vous pourriez le faire :

sub("*\\.[0-9]", "", a)

o

library(stringr)
str_sub(a, start=1, end=-3)

8voto

akrun Points 148302

Si la chaîne doit être de longueur fixe, alors substr de base R peut être utilisé. Mais, nous pouvons obtenir la position de la . con regexpr et l'utiliser dans substr

substr(a, 1, regexpr("\\.", a)-1)
#[1] "NM_020506"    "NM_020519"    "NM_001030297" "NM_010281"    "NM_011419"    "NM_053155"

0voto

benson23 Points 779

Nous pouvons utiliser une regex lookahead pour extraire les chaînes avant . .

library(stringr)

str_extract(a, ".*(?=\\.)")
[1] "NM_020506"    "NM_020519"    "NM_001030297" "NM_010281"   
[5] "NM_011419"    "NM_053155"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X