Ich arbeite mit NCBI-Referenzsequenz-Zugangsnummern wie Variable a
:
a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2")
Um Informationen aus dem biomart Paket muß ich die entfernen .1
, .2
usw. nach den Zugangsnummern. Normalerweise mache ich das mit diesem Code:
b <- sub("..*", "", a)
# [1] "" "" "" "" "" ""
Wie Sie sehen, ist dies jedoch nicht der richtige Weg für diese Variable. Kann mir jemand dabei helfen?
string r
) sind die Optionen wie angegeben: b1 <- gsub ("\\ .. *", "", a, fixed = FALSE) b2 <- sub (" \\ .. * "," ", a, fixed = FALSE) In bestimmten Fällen müssen Sie möglicherweise dasfixed
Argument ändern . Hier muss es jedoch eingestellt seinFALSE
(dies ist die Standardeinstellung). sonst wird es nicht funktionieren. Außerdem benötigen Sie das doppelte Escape `\`, oder Sie erhalten eine Fehlermeldung.Wir können so tun, als wären sie Dateinamen, und Erweiterungen entfernen :
tools::file_path_sans_ext(a) # [1] "NM_020506" "NM_020519" "NM_001030297" "NM_010281" "NM_011419" "NM_053155"
quelle
Du könntest es tun:
sub("*\\.[0-9]", "", a)
oder
library(stringr) str_sub(a, start=1, end=-3)
quelle
str_replace(a,"\\.[0-9]","")
undstr_replace(a,"\\..*","")
Wenn die Zeichenfolge eine feste Länge haben soll, kann
substr
frombase R
verwendet werden. Aber wir können die Position des.
mit bekommenregexpr
und das in verwendensubstr
substr(a, 1, regexpr("\\.", a)-1) #[1] "NM_020506" "NM_020519" "NM_001030297" "NM_010281" "NM_011419" "NM_053155"
quelle