在特定值之前消除data.frame中的字符

时间:2017-05-25 13:08:01

标签: r dataframe

我有一个名为" ID"的第一列的文件。这列有我只需要最后一个的信息。

k__Archaea;p__Euryarchaeota;c__Methanobacteria;o__Methanobacteriales;f__Methanobacteriacea

我想在" f __"之前消除所有字符,仅保留" Methanobacteriacea"在第一栏。

使用R?

执行此操作的简单方法是什么?

1 个答案:

答案 0 :(得分:0)

一个选项是sub。我们匹配零个或多个字符(.*)后跟;,然后匹配f__并将其替换为空白(""

sub(".*;f__", "", str1)
#[1] "Methanobacteriacea"

如果我们需要f__,则从f作为一组捕获字符,并将其替换为该组的反向引用(\\1

sub(".*;(f__.*)", "\\1", str1)
#[1] "f__Methanobacteriacea"

数据

str1 <- "k__Archaea;p__Euryarchaeota;c__Methanobacteria;o__Methanobacteriales;f__Methanobacteriacea"