我想写一个函数,一个矢量随机变为一到四位数,我想将它全部打印成四位数,如果矢量中没有足够数量的字符,我想添加在那个向量前面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,然后将其放入粘贴功能。
非常感谢你的帮助。
答案 0 :(得分:1)
我们可以使用sprintf
并指定fmt
具有前导零(%04d
)
f1 <- function(num){
sprintf("%04d", num)
}
f1(c(1, 12, 123, 1234))
#[1] "0001" "0012" "0123" "1234"
注意:前导零号码为character
级而不是numeric/integer