首页 > 解决方案 > 如何从数据框的一列中的所有行中删除特定字符

问题描述

我有一个包含两列和几百行的数据框,我们称之为它df,它看起来像这样 -

Name                 Chemical_Formula
PALMITYL-COA         C37H62N7O17P3S1
CPD0-888             C34H52N7O24P2
3-OXOPALMITOYL-COA   C37H60N7O18P3S1
OH-MYRISTOYL         C43H75N3O20P2
CPD-19171            C39H64N7O18P3S1
CPD-15253            C52H99N3O13P2
CPD-12122            C75H112O2
CPD0-937             C149H260N2O78P4
....                 .....
....                 .....

现在,如果Chemical_Formula某些化合物的结尾是1我想1从化学式中删除它。例如,对于第一种化合物PALMITYL-COA,其化学式C37H62N7O17P3S1以 结尾1。所以在我的新数据框中,我希望第一个化合物的化学式是C37H62N7O17P3S.

所以,我的新数据框应该是这样的 -

Name                 Chemical_Formula
PALMITYL-COA         C37H62N7O17P3S
CPD0-888             C34H52N7O24P2
3-OXOPALMITOYL-COA   C37H60N7O18P3S
OH-MYRISTOYL         C43H75N3O20P2
CPD-19171            C39H64N7O18P3S
CPD-15253            C52H99N3O13P2
CPD-12122            C75H112O2
CPD0-937             C149H260N2O78P4
....                 .....
....                 .....

如果它们不以数字结尾,我想保留所有化学式1。以我结尾的那些1我只想删除那个 1,保持公式的其余部分不变。

我一直在寻找使用gsub sub greplorsubset函数的方法,但不太确定使用正则表达式规则给出什么模式。请帮忙!

标签: rregexsubsetgsubgrepl

解决方案


就是这样

df$Chemical_Formula <- gsub("1$", "", df$Chemical_Formula)

1 后面的美元符号表示字符串的结尾。这意味着它只会删除 1 如果它位于末尾


推荐阅读