5
我嘗試寫有一個參數像下面的函數:傳遞一個數字有前導零的功能
myfunction<-function(id){
print(paste(id, ".", "csv", sep=""))
}
當id的值是這樣的009,它打印它作爲9.csv不是009 .csv格式。
我嘗試這樣做:
id<-as.character(id)
這是行不通的。有什麼建議麼?
我嘗試寫有一個參數像下面的函數:傳遞一個數字有前導零的功能
myfunction<-function(id){
print(paste(id, ".", "csv", sep=""))
}
當id的值是這樣的009,它打印它作爲9.csv不是009 .csv格式。
我嘗試這樣做:
id<-as.character(id)
這是行不通的。有什麼建議麼?
使用例如sprintf()
:
myfunction <- function(id) {
sprintf("%03d.csv", id)
}
這給
R> cat(myfunction(9), "\n")
009.csv
R> cat(myfunction(199), "\n")
199.csv
R>
雖然你已經接受了@德克的回答......
問題是你是通過你輸入的數字。對於R,009
計算爲9
:
> 009
[1] 9
所以當你運行myfunction(009)
,它確實運行myfunction(9)
。將「9.csv」作爲輸出結果應該不足爲奇。
相反,你應該通過你輸入的字符:「009」:
> myfunction("009")
[1] "009.csv"
雖然這部作品在這個例子中,問題是,你不會總是能夠從參數輸入命令行並添加「」,有時該函數將從另一個無法控制的函數中調用,並且不會添加「」,只是009,並且您必須確保函數不會變爲9。這是我正在尋找的答案(並將我帶到這裏) – chrisfs