从列

时间:2016-06-01 11:32:36

标签: r regex bioinformatics gsub

我有一个前两列的表,如下所示:

Human_ortholog  Representative_transcript
FAM126A         ENST00000409923.1
CYP3A5          ENST00000339843.2
LCMT1           ENST00000399069.3
SPATA31A6       ENST00000332857.6

如何使用gsub删除.n,其中n是.之后的数字?

1 个答案:

答案 0 :(得分:5)

以下是:

df$col = sub('\\.\\d$', '', df$col)

这将删除字符串末尾的单个数字,前面有一个点。如果数字可能包含多个数字,请使用适当的量词:

df$col = sub('\\.\\d+$', '', df$col)

这个答案正在使用sub,因为您只想为每个字符串执行一次替换。 gsub在每个字符串执行多次替换时有意义(仅限于此示例):

sub('[aeiou]', '', 'This is a test')
# [1] "Ths is a test"
gsub('[aeiou]', '', 'This is a test')
# [1] "Ths s  tst"