1
関数にかなりの引数を渡そうとしています(実際は参照クラスの初期化関数です)。私はクラスの初期化子に引数を渡すために省略記号3つを使用することを考えていますが、うまくいきません。ここに私のサンプルコードは次のとおりです。ellipsisを使用して引数を渡し、別の環境で評価する方法
SomeClass<-setRefClass("SomeClass",
fields=list(a="numeric",b="numeric",c="character"))
SomeClass_1<-setRefClass("SomeClass_1",contains="SomeClass")
SomeClass_2<-setRefClass("SomeClass_2",contains="SomeClass")
getExpression<-function(...){
return(substitute(list(...)))
}
ex1<-getExpression(a=1:3,b=pmax(2:4,3:5),c=c("test","test1","test2"))
d<-TRUE
if(d){
newclass<-SomeClass_1(do.call(eval,as.list(ex1)))
}else{
newclass<-SomeClass_2(do.call(eval,as.list(ex1)))
}
それは私にエラーメッセージを与える:
Error in (function (expr, envir = parent.frame(), enclos = if (is.list(envir) || :
unused arguments (a = 1:3, b = pmax(2:4, 3:5), c = c("test", "test1", "test2"))
私は参照クラスを初期化するために、引数の束を評価する方法がわからないのですか?あなたの考えを共有してください。前もって感謝します!
ありがとうございました!できます。しかし、私は表現評価を崩壊させることができるかどうかまだ疑問に思っていますか? – chl111
いつ、どのように役立つかを想像するのは苦労しています。おそらく、この解決法が機能しない再現可能な例題で新しい質問を投稿することができます。 – MrFlick