哪些包很好地利用了S4对象?

时间:2011-03-25 19:32:18

标签: r s4

哪些R包可以很好地利用S4类?我正在寻找适当使用S4的软件包(即当底层问题的复杂性要求时),编写得好,文档齐全(这样你就可以阅读代码并了解正在发生的事情)。

我很感兴趣,因为我很快就会教S4,我想让学生在实践中找到很好的例子,这样他们就可以阅读代码来帮助他们学习。

6 个答案:

答案 0 :(得分:11)

再考虑一下,可能是Matrix和/或lme4? Matrix通过有效表示稀疏矩阵做了很多诡计,所以这可能是一个值得(虽然可能很重)的例子。

另外,鉴于所有BioConductor都是在S4完成的,其中一些肯定会比平均水平好:)我相信马丁摩根将会有很好的例子。

答案 1 :(得分:5)

这并不能完全回答你的问题,但是......

  • R in a Nutshelltimeseries object开发了一个S4类,然后将其与S3表示进行比较。这是S3和S4之间差异的一个非常好的例子(没有过于复杂或太简单)。
  • R programming for Bioinformatics简要讨论了ExpressionSet设置对象。

关于使用Bioconductor软件包,您可能会发现要完全理解代码 - 或者甚至只是为了开始 - 您必须具备合理的生物学知识。我认为同样适用于复杂的统计包;你需要对所发生的事情有一个模糊的概念,以了解代码结构背后的原因。

答案 2 :(得分:4)

在上一次伦敦R会议上,Brandon Whicher在他的dcemriS4包中使用了S4类,用于分析医学研究中的磁共振成像(MRI)。

他的讲话可以在这里找到: http://www.londonr.org/Medical%20Image%20Analysis%20using%20S4%20classes%20&%20methods.pdf

包裹在CRAN上: http://star-www.st-andrews.ac.uk/cran/web/packages/dcemriS4/index.html

答案 3 :(得分:3)

sp和依赖包使用S4并且记录良好。 Alpha和omega用于R中的空间内容。

答案 4 :(得分:1)

我会选择kernlab,其中还包含大量C代码。

它带有一个方便的vignette,详细介绍了一些S4概念。 (但它似乎没有使用roxygen作为文档,但这不是问题所在。)

答案 5 :(得分:0)

试图抓住我在教育资料包sequence中遇到的S4系统。类系统的实现在同一作者的回购roo中的一组附带幻灯片中说明。虽然使用的例子来自生物统计学,但最好遵循。

这是一个很好的学习资源,因为作者仔细地对比了不同的对象系统,同时保持了包的复杂性足以学习。