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

R 如何删除数字列中倒数第二个0?,r,regex,R,Regex,在dataframe df1的数字列old_code中,我的整数具有以下结构: head(df1$old_code) [1] 12101 18201 13202 11301 13302 10401 在列new_code中,我希望得到相同的整数,减去倒数第二个0,即12101,我希望看到1011,18201和1021。我肯定这是解决使用正则表达式,但我不能破解代码 谢谢你的帮助 您可以尝试将其转换为字符串: df$old_code=as.character(df$old_code

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

    head(df1$old_code)
    [1] 12101 18201 13202 11301 13302 10401
在列new_code中,我希望得到相同的整数,减去倒数第二个0,即12101,我希望看到1011,18201和1021。我肯定这是解决使用正则表达式,但我不能破解代码


谢谢你的帮助

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

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)
您可以尝试使用gsub:


你的例子看起来不像是倒数第二个0。将12101替换为1011似乎将最后一个0之前的两个步骤替换为0,并删除最后一个0。与18201和1021相同。
gsub("(.*)0(.)$", "\\1\\2", df$old_code)
# [1] "1211" "1821" "1322" "1131" "1332" "1041"