【问题标题】:remove leading 0s with stringr in R在 R 中用 stringr 删除前导 0
【发布时间】:2018-03-09 05:03:16
【问题描述】:

我有以下数据

id
00001
00010
00022
07432

我想删除前导的0s,所以数据如下所示

id
1
10
22
7432

【问题讨论】:

    标签: r stringr


    【解决方案1】:

    stringr 中使用新的str_remove 函数:

    id = str_remove(id, "^0+")
    

    【讨论】:

    • 为了后代,我必须将我的 stringr 版本更新为 1.3.0
    【解决方案2】:

    这是使用 sub 的基本 R 选项:

    id <- sub("^0+", "", id)
    id
    
    [1] "1"    "10"   "22"   "7432"
    

    Demo

    【讨论】:

      【解决方案3】:

      我们可以直接转换成numeric

      as.numeric(df1$id)
      [#1]    1   10   22 7432
      

      如果我们需要character 类输出,可以使用来自stringrstr_replace

      library(stringr)
      str_replace(df1$id, "^0+" ,"")
      #[1] "1"    "10"   "22"   "7432"
      

      【讨论】:

      • “^0+”部分是什么意思?
      • @Basil + 表示一个或多个,因此如果 0 是前缀,则它将是一个或多个零,^ 表示字符串的开头。因此,检查的模式是一个或多个零作为字符串的开头
      猜你喜欢
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 2012-05-03
      • 2012-02-08
      • 1970-01-01
      • 2021-07-12
      • 2021-03-18
      • 1970-01-01
      相关资源
      最近更新 更多