43

在 marray 和limma等包中,当加载复杂对象时,它们包含使用 @ 符号访问的“成员变量”。这是什么意思,它与 $ 符号有何不同?

4

3 回答 3

39

?'@'

  • 描述:

    提取具有正式 (S4) 类结构的对象中插槽的内容。

  • 用法:

    object@name

    ...


S 语言有两个对象系统,非正式地称为 S3 和 S4。

  • S3 对象、类和方法从一开始就在 R 中可用,它们是非正式的,但非常具有交互性。S3 最初是在白皮书(S 中的统计模型)中描述的。
  • S3 不是真正的类系统,它主要是一组命名约定。
  • S4 对象、类和方法更加正式和严谨,因此交互性更少。S4 最早是在绿皮书(使用数据编程)中描述的。在 R 中,它可以通过methods包获得,自 1.7.0 版起默认附加。

另请参阅此文档:S4 类和方法

于 2009-12-15T15:11:25.117 回答
10

正如其他人所说,@ 符号与 S4 类一起使用,但这里有一条来自Google 的 R 样式指南的注释:“使用 S3 对象和方法,除非有充分的理由使用 S4 对象或方法。”

于 2009-12-17T23:49:04.347 回答
5

您将需要阅读使用 @ 符号的 S4 类。

于 2009-12-15T15:01:06.120 回答