Remova parte da sequência depois de “.”

Eu estou trabalhando com números de access NCBI Reference Sequence como variável a :

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

Para obter informações do pacote biomart, preciso remover o .1 , .2 etc. após os números de access. Eu normalmente faço isso com este código:

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

Mas, como você pode ver, essa não é a maneira correta para essa variável. Alguém pode me ajudar com isso?

Você só precisa fugir do período:

 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" 

Podemos fingir que eles são nomes de arquivos e remover extensões :

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

Você poderia fazer:

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

ou

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