Je travaille avec les numéros d’accession à la séquence de référence NCBI comme la 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 sur le paquet 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 constater, ce n'est pas la bonne manière pour cette variable. Est-ce que quelqu'un peut m'aider avec ça?
Vous avez juste besoin 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'ils sont des 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"
Vous pourriez faire:
sub("*\\.[0-9]", "", a)
ou
library(stringr)
str_sub(a, start=1, end=-3)
Si la chaîne doit avoir une longueur fixe, alors substr
de base R
peut être utilisé. Mais on peut avoir la position du .
avec 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"