Rでオプションの引数を使用して関数を作成する「正しい」方法に興味があります。時間の経過とともに、ここで別のルートをとるいくつかのコードに遭遇し、適切な(公式の)位置を見つけることができませんでした。このトピックにおいて。
これまでは、次のようなオプションの引数を記述しています。
fooBar <- function(x,y=NULL){
if(!is.null(y)) x <- x+y
return(x)
}
fooBar(3) # 3
fooBar(3,1.5) # 4.5
この関数は、指定された場合にのみ引数を返しますx
。NULL
2番目の引数にデフォルト値を使用し、その引数が偶然ではないNULL
場合、関数は2つの数値を加算します。
あるいは、次のような関数を書くこともできます(2番目の引数は名前で指定する必要がありますが、代わりに、unlist(z)
またはz <- sum(...)
代わりに定義することもできます)。
fooBar <- function(x,...){
z <- list(...)
if(!is.null(z$y)) x <- x+z$y
return(x)
}
fooBar(3) # 3
fooBar(3,y=1.5) # 4.5
個人的に私は最初のバージョンを好む。しかし、私は両方で良い面と悪い面を見ることができます。最初のバージョンは少しエラーが発生しにくいですが、2番目のバージョンは任意の数のオプションを組み込むために使用できます。
Rでオプションの引数を指定する「正しい」方法はありますか?これまでのところ、私は最初のアプローチに落ち着きましたが、両方とも時々少し「ハッキー」に感じるかもしれません。
xy.coords
、一般的に使用されるアプローチを確認してください。