2017-03-11 52 views
1

我想寫一個向量隨機到一位到四位數的函數,如果沒有足夠數量的字符,我想將它全部打印成四位數在向量中,我想在該向量前加0。輸入不同的nchar向量並輸出到四位數

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

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

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,然後把它放入粘貼功能。

非常感謝您的幫助。

回答

1

我們可以用sprintf,並指定fmt有前導零(%04d

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

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

注:前導零的數目是character類的,而不是numeric/integer

相關問題