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"