Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the @ symbol mean in R?

Tags:

r

s4

In packages like marray and limma, when complex objects are loaded, they contain "members variables" that are accessed using the @ symbol. What does this mean and how does it differ from the $ symbol?

like image 248
pufferfish Avatar asked Dec 15 '09 14:12

pufferfish


People also ask

What does '$' mean in R?

Generally speaking, the $ operator is used to extract or subset a specific part of a data object in R. For instance, this can be a data frame object or a list. In this example, I'll explain how to extract the values in a data frame columns using the $ operator.

What does AT symbol do in R?

'@' : Description: Extract the contents of a slot in a object with a formal (S4) class structure.


2 Answers

See ?'@':

  • Description:

    Extract the contents of a slot in a object with a formal (S4) class structure.

  • Usage:

    object@name

    ...


The S language has two object systems, known informally as S3 and S4.

  • S3 objects, classes and methods have been available in R from the beginning, they are informal, yet very interactive. S3 was first described in the White Book (Statistical Models in S).
  • S3 is not a real class system, it mostly is a set of naming conventions.
  • S4 objects, classes and methods are much more formal and rigorous, hence less interactive. S4 was first described in the Green Book (Programming with Data). In R it is available through the methods package, attached by default since version 1.7.0.

See also this document: S4 Classes and Methods.

like image 111
rcs Avatar answered Oct 02 '22 09:10

rcs


As the others have said, the @ symbol is used with S4 classes, but here is a note from Google's R Style Guide: "Use S3 objects and methods unless there is a strong reason to use S4 objects or methods."

like image 28
ramhiser Avatar answered Oct 02 '22 08:10

ramhiser