Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何删除数据框中一列中的部分名称?_R - Fatal编程技术网

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

R 如何删除数据框中一列中的部分名称?,r,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

我有一个数据看起来像这样

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,但我不能这样做

如果所有元素都使用“MO”,您可以尝试下面的正则表达式

 df1$v1 <- sub('\\.MO.*', '', df1$v1)
或者更具体一点

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

你有所有元素的
MO
通用吗?我有.MO。或者,不。或。其中一个是common@Nemo我更新了解决方案。请检查这在原始数据集中是否有效。@Nemo您可以对上一个结果执行另一个
sub
。也就是说,
sub('[.]','',df1$v1)
@Nemo我的意思是
'
,因此
将被一个空格代替。在您显示的代码中,它被
'
@Nemo替换。请不要不尝试就放弃。学习
gsub
实际上很有趣。只要尝试一些字符串,并做所有这些替换的乐趣。通过反复试验,你会很快学会的。
sub('\\.(MO|NO|NR).*', '', df1$v1)
#[1] "phenzine"  "dnium.bte" "trene"     "tilli"     "tnolone"