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

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.

...

Additional arguments.

value

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

Value

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

  • metadata2<-(): Modified object.

Note

Updated 2019-10-24.

S3 class

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

S4 class

Requires that object extends Annotated class, which supports metadata().

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"
S4Vectors::metadata(x)[["A"]]
#> [1] "B"