如何删除数字列中的倒数第二个0?

时间:2019-02-13 23:05:38

标签: r regex

在数据帧df1的数字列old_code中,我的整数具有以下结构:

    head(df1$old_code)
    [1] 12101 18201 13202 11301 13302 10401

在new_code列中,我想要相同的整数,减去倒数第二个0(即12101,我想将其视为1011,将18201视为1021)。我很肯定这可以使用正则表达式解决,但我无法破解代码。

谢谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以尝试使用gsub

gsub("(.*)0(.)$", "\\1\\2", df$old_code)
# [1] "1211" "1821" "1322" "1131" "1332" "1041"

答案 1 :(得分:0)

您可以尝试将其转换为字符串:

df$old_code=as.character(df$old_code) 
a= substr(df$old_code, 1, 1) 
b=substr(df$old_code, 3,nchar(df$old_code)) 
df$old_code=paste0(a,b) 
df$old_code=as.integer(df$old_code)