引数がいくつかの既定の名前付き値のうちの1つ(既定値の1つ)またはカスタム文字ベクトルの1つになるR関数があるとします。どのように私は魔法の価値の名前や別の旗に頼ることなくこれを実装する必要がありますか?関数のデフォルトの引数と名前付き値
#allow use of predefined subsets or pass their own list
bratPack<-function(members='CORE',...){
if (members=='CORE')
members<-c('Emilio Estevez','Anthony Michael Hall','Rob Lowe','Andrew McCarthy','Demi Moore','Judd Nelson','Molly Ringwald','Ally Sheedy')
else if (members=='ALL')
members<-c('Emilio Estevez','Anthony Michael Hall','Rob Lowe','Andrew McCarthy','Demi Moore','Judd Nelson','Molly Ringwald','Ally Sheedy','James Spader','Robert Downey, Jr.','Jon Cryer', 'John Cusack', 'Kevin Bacon', 'Jami Gertz', 'Mary Stuart Masterson', 'Matthew Broderick', 'Sean Penn', 'Kiefer Sutherland')
...
}
これを書いたので、 '' CORE ''や' 'ALL" 'オプションのどちらかを望んでいるのか、名前の2つのベクトルをどこかに保存したいのかどうかはわかりません。私の答えはあなたのQのタイトルを読むとき私が考えていた前者を扱っています。 –
私はfoo( "3rdRate")を受け入れるために必要です。基本的には、これらのタイプの事前定義されたサブセットを実装するための規約が何であるか不思議です。 –
@Gavin 'members < - 'CORE''を実行する必要はありません:' match.arg() 'に' several.ok = T'を設定した場合です。それは最初のものとちょうど一致します。あるいは単に 'match.arg(" CORE ")'オプションを指定しないでも同じです。アダプテーションはパッケージ内のデータフレーム定数の適合のみを必要とするため、関数内のすべてのオプションを指定しないことを選択しました。それ以外の場合は、新しいカテゴリを追加する場合は、データフレームと関数の両方を変更する必要があります。私が推測するデザインの問題。さらに、try構造体を使用すると、OPが要求するベクトルの指定が可能になります。 –