@符号在R中的含义是什么?

puf*_*ish 30 r s4

在像marray和limma这样的包中,当加载复杂对象时,它们包含使用@符号访问的"成员变量".这意味着什么?它与$符号有什么不同?

rcs*_*rcs 32

?'@':

  • 描述:

    使用正式(S4)类结构提取对象中插槽的内容.

  • 用法:

    object@name

    ...


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

  • S3对象,类和方法从一开始就在R中可用,它们是非正式的,但非常具有交互性.S3首先在白皮书(S中的统计模型)中描述.
  • S3不是真正的类系统,它主要是一组命名约定.
  • S4对象,类和方法更加正式和严谨,因此交互性较差.S4首先在Green Book(Programming with Data)中描述.在R中,它可以通过methods软件包获得,默认情况下从1.7.0版开始附加.

另见本文档:S4类和方法.


ram*_*ser 8

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


Dir*_*tel 5

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