引用符なしでテキスト/文字引数を取り込む方法について以前に質問しました。その質問で提供したシナリオでは、引数の数は固定されているため、関数定義で使用する eval(substitute()) の数は、私が持っている引数の数に対応します。
たとえば、引数が 1 つの場合factors
(以下を参照)、ユーザーは引用符を使用せずに複数の列名を指定できます。つまり、 .factor1
の代わりに使用し"factor1"
ます。そして、ユーザーが提供した各列名を評価したいと思います。
foo<-function(data.frame, factors){
}
質問 1: 式の数が異なる場合に、eval(substitute()) を複数の式に適用する方法があるかどうか疑問に思います。
指摘したように、 eval(substitute()) は潜在的に危険であり、特定の状況下で失敗する可能性があります。
質問 2: 以下に示すように、引用符で囲まれた列名を使用する以外に、問題に対処するより洗練された方法はありますか。
foo<-function(data.frame, factors){
output<-data.frame[, factors]
output
}
foo(data.frame=dataset, factors=c("factor1", "factor2"))