为什么我必须在引用类中定义引用类的方法?

时间:2013-09-27 09:57:59

标签: r oop reference-class

引用类定义可以在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)

在CRAN上是否有任何使用RC的编写良好的软件包并且记录良好?说到文档,我的意思并不是一个整洁的网站,而是基于.dd的文档。 我最近在其他人的源代码中看到的是包含函数或函数列表的函数。我应该使用它吗?

1 个答案:

答案 0 :(得分:1)

我找到了自己问题的部分答案:lme4包使用了很多RC类,并使用.Rd

来记录它们。