2

参照クラスの定義は、R のコードのかなりの数の行を積み重ねることができます。メソッドが参照クラス内で定義される場合、いくつかのメソッドとフィールド定義により、非常に紛らわしいクラス定義が得られます。少なくとも 300 行以上では読むのが困難です。そして、私は他の問題を抱えています:

  • roxygen2ドキュメントは、関数のようにすぐに使えるわけではありません。
  • 演算子を使用した自動提案は$、関数および関数のリストに対して機能しますが、RC のメソッドに対しては機能せず、フィールド名に対してのみ機能します
  • メソッド定義を複数のファイルに分割できる可能性があることを知りません。私のパッケージのすべてのコードは、クラス定義を含む 2 つまたは 3 つのファイルにあります。

コードで言えば、なぜこのようなことをすべきではないのでしょうか?

someDummy <- setRefClass("someDummy", fields = list(df = "matrix",
                                   multiplier = "numeric"))

test <- someDummy()


thingsYouCanDo <- function(){
 rc <- NULL
 mtrx <- NULL
 multi <- NULL
populate <- function(rc,mtrx,multi){
rc$df <- mtrx
rc$multiplier <- multi
}
multiply <- function(rc){
out <- rc$df * rc$multiplier
out
}
return(list(populate = populate,
         multiply = multiply))
}

te <- thingsYouCanDo()
te$populate(test,matrix(1:12,4,3),5)
test
te$multiply(test)

RC を利用し、適切に文書化されている、適切に作成された CRAN のパッケージはありますか? ドキュメンテーションといえば、きちんとした Web サイトではなく、.Rd ベースのドキュメンテーションを意味します。最近、他の人のソース コードでよく目にするのは、関数または関数のリストを含む関数です。むしろそれを使ったほうがいいですか?

4

1 に答える 1

1

私自身の質問に対する答えの一部を見つけました:lme4パッケージはかなりの数の RC クラスを使用し、.Rd を使用してそれらを文書化します

于 2013-09-27T10:08:30.687 に答える