如何删除R中字符串中的某些字符

如何删除R中字符串中的某些字符,r,string,R,String,我分析了一些基因id。这些id类似如下: “ENG00000189001.9”“ENG00000179152.17”“ENG00000131374.13” 1-我想删除“.”和其后的每个字符,例如: “ENG00000189001”“ENG00000179152”“ENG00000131374” 2-在步骤1之后,我想从字符串中删除“”,如下所示: ENG00000189001 ENG00000179152 ENG00000131374您可以使用gsub GID = c("ENSG0000018

我分析了一些基因id。这些id类似如下:

“ENG00000189001.9”“ENG00000179152.17”“ENG00000131374.13”

1-我想删除“.”和其后的每个字符,例如:

“ENG00000189001”“ENG00000179152”“ENG00000131374”

2-在步骤1之后,我想从字符串中删除“”,如下所示:


ENG00000189001 ENG00000179152 ENG00000131374

您可以使用
gsub

GID = c("ENSG00000189001.9", "ENSG00000179152.17", "ENSG00000131374.13")
GID2 = gsub("\\..*", "", GID)
cat(GID2, "\n")
ENSG00000189001 ENSG00000179152 ENSG00000131374 
请注意,如果只键入GID2,仍将看到引号。这就是R表示这些是字符串的方式。使用cat仅显示字符串内容

关于正则表达式的一点细节:
\\.
匹配每个字符串中找到的第一个句点。
*
匹配之后的所有内容。

gsub
将用“”替换匹配的部分(句点和后面的所有内容),即空字符串

这里有一些有趣的、与众不同的方法来获得想要的结果

scan(text=GID, what="", comment.char=".")
# Read 3 items
# [1] "ENSG00000189001" "ENSG00000179152" "ENSG00000131374"
dirname(chartr(".", "/", GID))
# [1] "ENSG00000189001" "ENSG00000179152" "ENSG00000131374"
read.table(text=GID, sep=".", stringsAsFactors=FALSE)$V1
# [1] "ENSG00000189001" "ENSG00000179152" "ENSG00000131374"
stringi::stri_split_fixed(GID, ".", simplify=TRUE)[,1]
# [1] "ENSG00000189001" "ENSG00000179152" "ENSG00000131374"
数据:


GID谢谢。作为您的评论,我发现“\\..*”是正则表达式。如何在R中找到这些正则表达式以备将来使用?只需键入
help(regex)
即可获得一些帮助。但这相当简洁。通过谷歌搜索
r正则表达式教程
,您可以找到很多帮助。
GID <- c("ENSG00000189001.9", "ENSG00000179152.17", "ENSG00000131374.13")