输入不同的nchar向量并输出为四位数字

input different nchar vector and output into four digit

我想写一个函数,一个向量随机到一到四位,我想把它全部打印成四位,如果向量中的字符数不够,我想在该向量前添加 0。

Input:
x <- 1
x <- 12
x <- 123
x <- 1234

Output:
numb(x)
0001
numb(x)
0012
numb(x)
0123
numb(x)
1234

numb <- function(x) {{if(nchar(x) =4) { print(x) } 
else if (nchar(x) < 4) { y <- 4 - nchar(x) 
paste(nchar(y),x,sep="")}
} 

不知道怎么把1变成0,2变成00,3变成000,然后放到粘贴函数里

非常感谢您的帮助。

我们可以使用 sprintf 并指定 fmt 有前导零 (%04d)

f1 <- function(num){
   sprintf("%04d", num)
}

f1(c(1, 12, 123, 1234))
#[1] "0001" "0012" "0123" "1234"

注意:前导零数字是 character class 而不是 numeric/integer