Skip to contents

Dynamically handles metadata assignment and extraction in a similar fashion for both S3 and S4 objects.

Usage

metadata2(x, which, ...)

metadata2(x, which, ...) <- value

# S4 method for ANY,character
metadata2(x, which)

# S4 method for Annotated,character
metadata2(x, which)

# S4 method for ANY,character
metadata2(x, which) <- value

# S4 method for Annotated,character
metadata2(x, which) <- value

Arguments

x

Object.

which

character(1). A non-empty character string specifying which attribute is to be accessed. Note that positional numeric arguments are currently not allowed.

value

ANY. Metadata values to assign into slot, defined by which.

...

Additional arguments.

Value

  • metadata2(): Metadata. Returns NULL on which match failure, similar to attr() and metadata().

  • metadata2<-(): Modified object.

Note

Updated 2021-10-14.

S3 class

Internally slots into attributes(). Attribute is also accessible via attr(object, which).

S4 class

Requires that object extends Annotated class. Internally slots into metadata(). Attribute is also accessible via metadata(object)[[which]].

Examples

## S3 ====
x <- data.frame()
metadata2(x, which = "A") <- "B"
metadata2(x, which = "A")
#> [1] "B"
attr(x, which = "A")
#> [1] "B"

## S4 (extending Annotated) ====
x <- S4Vectors::DataFrame()
metadata2(x, which = "A") <- "B"
metadata2(x, which = "A")
#> [1] "B"