R 删除“";之后的部分字符串&引用;

R 删除“";之后的部分字符串&引用;,r,R,我正在使用NCBI参考序列登录号,如变量a: a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2") 但正如您所看到的,这不是该变量的正确方法。有人能帮我吗?你可以: sub("*\\.[0-9]", "", a) 或 你只需要逃离这段时间: a <- c("NM_020506.1","NM_020519.1","NM_001030297.2

我正在使用NCBI参考序列登录号,如变量
a

a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2")  
但正如您所看到的,这不是该变量的正确方法。有人能帮我吗?

你可以:

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


你只需要逃离这段时间:

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" 

a我们可以假装它们是文件名并删除扩展名:


如果字符串应为固定长度,则可以使用
base R
中的
substr
。但是,我们可以使用
regexpr
获得
的位置,并将其用于
substr

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

备选方案:
stru-replace(a,“\\.[0-9]”,“)
stru-replace(a,“\\..*”,“)
说明:对于基本包中的函数(即没有其他包,如
string r
),选项如下所示:b1您不会将其与fixed as TRUE一起使用,因为我们在这里使用正则表达式。
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" 
tools::file_path_sans_ext(a)
# [1] "NM_020506"    "NM_020519"    "NM_001030297" "NM_010281"    "NM_011419"    "NM_053155"
substr(a, 1, regexpr("\\.", a)-1)
#[1] "NM_020506"    "NM_020519"    "NM_001030297" "NM_010281"    "NM_011419"    "NM_053155"