【发布时间】:2018-09-23 23:17:00
【问题描述】:
我有一列字符串,我想删除最后一个“。”之后的所有内容
我试过了:
sub('\\..*', '', x)
但我的问题是,对于某些刺痛,有 x2 '.'并且对于某些只有 x1 '。 例如
ENST00000338167.9
ABCDE.42927.6
如何只删除最后一个 '.' 之后的字符?? 这样我就剩下了:
ENST00000338167
ABCDE.42927
非常感谢!!
【问题讨论】:
我有一列字符串,我想删除最后一个“。”之后的所有内容
我试过了:
sub('\\..*', '', x)
但我的问题是,对于某些刺痛,有 x2 '.'并且对于某些只有 x1 '。 例如
ENST00000338167.9
ABCDE.42927.6
如何只删除最后一个 '.' 之后的字符?? 这样我就剩下了:
ENST00000338167
ABCDE.42927
非常感谢!!
【问题讨论】:
我们可以使用sub 匹配.(因为它是任何字符的元字符而被转义)后跟0 个或多个不是. 的字符([^.]*)直到最后(@987654325 @) 并将其替换为空白 ("")
sub("\\.[^.]*$", "", x)
#[1] "ENST00000338167" "ABCDE.42927"
或使用str_remove 来自stringr
library(stringr)
str_remove(x, "\\.[^.]*$")
#[1] "ENST00000338167" "ABCDE.42927"
x <- c("ENST00000338167.9", "ABCDE.42927")
【讨论】:
另一种方法是“捕获”之前的部分。
sub("(.*)\\..*", "\\1", x)
【讨论】: