5

私は以下のような引数を持つ関数を書き込もうとしています:

myfunction<-function(id){
print(paste(id, ".", "csv", sep=""))
}

id値がこの009の場合、009.csvではなく9.csvとして出力されます。

私はこれを試しました:

id<-as.character(id)

これは機能していません。助言がありますか?

4

2 に答える 2

9

例を使用してくださいsprintf()

myfunction <- function(id) {
    sprintf("%03d.csv", id)
}

これは

R> cat(myfunction(9), "\n")
009.csv 
R> cat(myfunction(199), "\n")
199.csv 
R> 
于 2013-01-13T19:26:48.987 に答える
4

あなたはすでに@Dirkの答えを受け入れましたが...

問題は、入力を数値として渡すことです。Rの場合、次のように009評価され9ます。

> 009
[1] 9

したがって、実行するmyfunction(009)と、実際に実行されmyfunction(9)ます。出力として「9.csv」が表示されるのは当然のことです。

代わりに、入力を文字として渡す必要があります: "009":

> myfunction("009")
[1] "009.csv"
于 2013-01-13T23:07:29.070 に答える