如何删除数据框的一列中的部分名称?

时间:2015-04-01 07:29:38

标签: r

我的数据看起来像这样

v1                                         v2
phenzine.MO.4213121906560.C02.name  2.376140e-05
dnium.bte.MO.02400072107987.E10.name    2.423254e-05
trene.MO.024213121906564.C09.name       2.438986e-05
tilli.MO.550760072207033.F09.name       2.495574e-05
tnolone.MO..614615111406.name           2.511859e-05

我想删除第一列的部分,然后它将在下面

      v1              v2
    phenzine    2.376140e-05
    dnium.bte   2.423254e-05
    trene       2.438986e-05
    tilli       2.495574e-05
    tnolone     2.511859e-05

我知道我必须使用grep或sub但是我不能这样做

1 个答案:

答案 0 :(得分:1)

如果' MO&#39>你可以试试下面的正则表达式。所有元素都很常见

 df1$v1 <- sub('\\.MO.*', '', df1$v1)

假设您要从.后面跟着第一个大写字母

删除字符串
 sub('\\.[A-Z].*', '', df1$v1)
 #[1] "phenzine"  "dnium.bte" "trene"     "tilli"     "tnolone"  

或者如果它更具体

sub('\\.(MO|NO|NR).*', '', df1$v1)
#[1] "phenzine"  "dnium.bte" "trene"     "tilli"     "tnolone"