デフォルト引数の一部を置き換えるラッパー関数を作成したいと考えています。
ここに私が苦労している問題の核心があります:
Error in localWindow(xlim, ylim, log, asp, ...) :
formal argument "cex" matched by multiple actual arguments
ここで少しコンテキストを説明します。次のようにプロットのラッパー関数を定義するとします。
myplot <- function(x, ... ) {
plot(x, cex= 1.5, ... )
}
私が電話myplot( 1:10, cex= 2 )
すると、上記のエラーが発生します。私...
はリストに目を向けることができることを知っています
l <- list(...)
そして、私はできる
if( is.null( l[["cex"]] ) ) l[["cex"]] <- 2
ただし、このリストを省略記号引数に「挿入」するにはどうすればよいですか? 次のようなもの(これが機能しないことはわかっています):
... <- l
編集:myplot
定義でデフォルトを使用できます(@Thomasからの回答で提案されているように)が、したくありません:関数インターフェイスが雑然とします。次のようなヘルパー関数を定義できると思います。
.myfunchelper <- function( x, cex= 2.0, ... ) {
plot( x, cex= cex, ... )
}
myfunc <- function( x, ... ) {
.myfunchelper( x, ... )
}
しかし、(i) あまりエレガントではなく、(ii) 私の好奇心を満足させません。