Attributes are like metadata for R objects. They can be used to store additional information about an object, such as its dimensions, class, names, and so on. Attributes can be accessed using the `attributes()` function.
Here are some examples of attributes:
- The `names` attribute stores the names of the elements of an object. For example, the names attribute of a vector stores the names of the elements of the vector.
- The `dimnames` attribute stores the dimensions of an object. For example, the dimnames attribute of a matrix stores the names of the rows and columns of the matrix.
- The `class` attribute stores the class of an object. The class of an object determines how R will interpret the object. For example, the class of a vector is `vector`.
- The `length` attribute stores the length of an object. The length of an object determines how many elements the object contains. For example, the length of a vector is the number of elements in the vector.
Attributes can be added to or removed from objects using the `attributes()` function. For example, the following code adds the `names` attribute to a vector:
x <- c(1, 2, 3)
attributes(x) <- list(names=c("a", "b", "c"))
The `attributes()` function returns a list of the attributes of an object. If an object does not have any attributes, the `attributes()` function returns NULL.