参照クラスの定義は、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 ベースのドキュメンテーションを意味します。最近、他の人のソース コードでよく目にするのは、関数または関数のリストを含む関数です。むしろそれを使ったほうがいいですか?