gpt4 book ai didi

R 中的类 : S3 vs S4

转载 作者:行者123 更新时间:2023-12-03 06:00:20 26 4
gpt4 key购买 nike

我想在 R 中创建一个类,我应该使用 S3 还是 S4 类?

我读到了很多关于它们的不同内容,有一个比另一个更好吗?

最佳答案

S3 只能分派(dispatch)其第一个参数,而 S4 可以分派(dispatch)多个参数。如果您希望能够为函数 foo 编写方法如果给定 "bar" 类的对象,它应该做不同的事情或给定类 "bar" 的对象 "foobar" ,或给定类 "barfoo" 的对象和"foobar" ,那么 S4 提供了一种更好的方法来处理此类复杂性。

S3非常简单且易于实现,但并不是真正的正式的面向对象系统。这种简单性是以强制属于某个类的对象具有正确的组件/插槽等为代价的。使用 S3,我可以做类似 class(obj) <- "lm" 的事情。并且方法调度将使用 "lm" 的方法通过时上课obj ,但不能保证obj确实是类 "lm" 的对象.

S3 易于实现和记录,并且需要程序员较少的额外知识。

使用哪一个只能由您决定。例如,Doug Bates (2003) 曾表示,对于新项目,他将使用 S4 而不是 S3。我还不需要使用 S3 方法以外的任何东西。

所以我会坐下来思考您想要在这些类上操作的类的类型和方法。考虑一下您想要的功能,这可能会指向一个系统或另一个系统。

道格拉斯·贝茨。 Converting packages to S4 。 R 新闻,3(1):6-8,2003 年 6 月

关于R 中的类 : S3 vs S4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6450803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com