如何从列中删除前导0

时间:2018-07-23 12:34:37

标签: r regex str-replace

我是R的新手,并且想知道如何从数据库的确定列中删除前导0。 这是我的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)

3 个答案:

答案 0 :(得分:3)

尝试:

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

答案 1 :(得分:1)

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

MATCH_PARENT

as.numeric(gsub("\\D","",df$questionn)) [1] 1 2 3 10 获得相同的输出。

答案 2 :(得分:0)

substr(gsub("SI", "", question$question),
         regexpr("[^0]",gsub("SI", "", question$question)),
         nchar(gsub("SI", "", question$question)))

产生:

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

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