我正在尝试编写一个具有如下参数的函数:
myfunction<-function(id){
print(paste(id, ".", "csv", sep=""))
}
当id值类似于009时,它将其打印为9.csv而不是009.csv。
我试过了:
id<-as.character(id)
这不起作用。有什么建议吗?
答案 0 :(得分:9)
使用例如sprintf()
:
myfunction <- function(id) {
sprintf("%03d.csv", id)
}
给出了
R> cat(myfunction(9), "\n")
009.csv
R> cat(myfunction(199), "\n")
199.csv
R>
答案 1 :(得分:4)
虽然你已经接受了@Dirk的回答......
问题是您将输入作为数字传递。对于R,009
评估为9
:
> 009
[1] 9
所以当你运行myfunction(009)
时,它确实会运行myfunction(9)
。你输出“9.csv”就不足为奇了。
相反,您应该将输入作为字符传递:“009”:
> myfunction("009")
[1] "009.csv"