【问题标题】:removing numeric character from data从数据中删除数字字符
【发布时间】:2020-10-14 20:36:22
【问题描述】:

我想从我的 data.frame 中的所有名称中删除数字 0。

我自己尝试过,但是,使用字符串对我来说是第一次。

我试过了:

gsub('\0', '',  df )

可重现的代码:

df <- c("y2016.09", "y2010.05", "y2010.06", "y2010.07", "y2010.08", 
"y2010.09")

预期输出

y2016.9 
y2010.5
y2010.6 
y2010.7
y2010.8 
y2010.9

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以指定. 的位置(. 是正则表达式中的元字符 - 对于任何字符,所以它被转义 \\ 以按字面意思计算)并且匹配 0 个或多个字符(@987654324 @),在替换中,替换为.,即我们通过匹配删除的那个

    sub("\\.0*", ".", df)
    #[1] "y2016.9" "y2010.5" "y2010.6" "y2010.7" "y2010.8" "y2010.9"
    

    【讨论】:

      【解决方案2】:

      这是另一种使用lookarounds的正则表达式解决方案,但不像@akrun那样简单

      > gsub("(?<=\\.)0+","",df,perl = TRUE)
      [1] "y2016.9" "y2010.5" "y2010.6" "y2010.7" "y2010.8" "y2010.9"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多