R填充字符串中的0

geo*_*dex 7 regex string r

我有以下数据

GT-BU7867-09
GT-BU6523-113
GT-BU6452-1
GT-BU8921-12
Run Code Online (Sandbox Code Playgroud)

如何使用R来使连字符后面的数字填充前导零,以便它有三位数?生成的格式应如下所示:

GT-BU7867-009
GT-BU6523-113
GT-BU6452-001
GT-BU8921-012
Run Code Online (Sandbox Code Playgroud)

the*_*ail 11

基础解决方案

sapply(strsplit(x,"-"), function(x)
    paste(x[1], x[2], sprintf("%03d",as.numeric(x[3])), sep="-")
)
Run Code Online (Sandbox Code Playgroud)

结果:

[1] "GT-BU7867-009" "GT-BU6523-113" "GT-BU6452-001" "GT-BU8921-012"
Run Code Online (Sandbox Code Playgroud)