S3クラスのサブセット演算子の代わりを実装しています。私は特別な問題が生じていますしかし、私はS3クラスのサブセット演算子 - [i]と[i、]の検出方法
How to define the subset operators for a S4 class?
上の助言に従いました。誰かがx [i]やx [i、]を書いたかどうかをRコードでどのように区別するのですか?どちらの場合も、変数jが失われるだけです。
setOldClass("myclass")
'[.myclass' <- function(x, i, j, ..., drop=TRUE) {
print(missing(j))
return(invisible(NULL))
}
そして私が得る結果:
x <- structure(list(), class="myclass")
> x[i]
[1] TRUE
> x[i,]
[1] TRUE
> x[i,j]
[1] FALSE
私は2つを区別する方法についての方法は表示されません。私は、内部のCコードは引数のペアリストの長さを見てそれを行うと仮定しますが、ネイティブRで同じことを行う方法はありますか?
ありがとうございます! alexis_lazさんのコメントから
おそらく[".data.frame" 'が引数を扱い、' nargs() 'がどのように扱われるのかを見てください。 –