【问题标题】:how to remove leading 0 from column如何从列中删除前导0
【发布时间】:2018-07-23 21:36:45
【问题描述】:

我是R 的新手,想知道如何从数据库中的确定列中删除前导0s。 这是我在df 中的专栏。

questionn
SI001
SI002
SI003
SI010

我想得到类似的东西

questionn
1
2
3
10

我已经尝试过类似的方法,但由于SI010,它不起作用

library(stringr)
df$questionn <- str_replace_all(df$questionn, 'SQ0', '')

数据

df <- data.frame(questionn=c("SI001","SI002","SI003","SI010"),stringsAsFactors = FALSE)

【问题讨论】:

  • 那些不是前导零。这些数据有规律吗? SI 总是在那里吗?后面总是跟三位数字吗?需要更多信息。
  • 你可以简单地做as.numeric(gsub('\\D+', '', df$questionn))

标签: r regex str-replace


【解决方案1】:

试试:

as.numeric(str_replace_all(df$questionn,"SI0",""))

【讨论】:

    【解决方案2】:

    您可以删除所有不是数字的字符,然后转换为数字:

    as.numeric(gsub("\\D","",df$questionn))
    [1]  1  2  3 10
    

    as.numeric(str_replace_all(df$questionn,"\\D","")) 用于相同的输出。

    【讨论】:

      【解决方案3】:
      substr(gsub("SI", "", question$question),
               regexpr("[^0]",gsub("SI", "", question$question)),
               nchar(gsub("SI", "", question$question)))
      

      生产:

       "1"  "2"  "3"  "10"
      

      您要做的第一件事是去掉 SI,以获取具有前导零的格式的数据。

      【讨论】:

        猜你喜欢
        • 2021-02-24
        • 1970-01-01
        • 2014-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-21
        相关资源
        最近更新 更多