[解決済み】R関数でオプション引数を指定する "正しい "方法
2022-04-12 21:44:14
質問
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
を指定し、もしその引数が
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でオプション引数を指定する正しい方法はありますか?今のところ、私は最初のアプローチに落ち着いていますが、どちらもちょっとハチャメチャな感じがすることがあります。
解決方法は?
を使用することもできます。
missing()
を使用して、引数
y
が供給された。
fooBar <- function(x,y){
if(missing(y)) {
x
} else {
x + y
}
}
fooBar(3,1.5)
# [1] 4.5
fooBar(3)
# [1] 3
関連
-
R言語です。「接続を開くことができません」解決策
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
[解決済み] ggplot 2.0.0でのポイントサイズ
-
[解決済み] 特定のサイズのプロットウィンドウを作成する
-
[解決済み] グループ化関数(tapply、by、aggregate)と*applyファミリ
-
[解決済み] Rの代入演算子"="と"<-"の違いは何ですか?
-
[解決済み] JavaScriptの関数への引数の数
-
[解決済み] 統計的最頻値の求め方は?
-
[解決済み] オプションの引数を持つPython関数を作成するにはどうしたらいいですか?
-
[解決済み】自作関数を書くときにRの省略機能を使うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン