Retirez une partie de la chaîne après “.”

Je travaille avec les numéros d’accession de séquence de référence NCBI comme variable 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 package biomart, je dois supprimer le .1 , .2 etc. après les numéros d’accession. Je le fais normalement avec ce code:

 b <- sub("..*", "", a) # [1] "" "" "" "" "" "" 

Mais comme vous pouvez le voir, ce n’est pas la bonne manière pour cette variable. Est-ce que quelqu’un peut m’aider avec ça?

Il vous suffit d’échapper à 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" 

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

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

Vous pourriez faire:

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

ou

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