subject: Create, add, or retrieve a subject

View source: R/subject.R

subjectR Documentation

Create, add, or retrieve a subject

Description

Manage the subject metadata of a dataset. The subject can be stored as a simple character term or as a structured object with subproperties created by subject_create().

Usage

subject(x)

subject_create(
  term,
  schemeURI = NULL,
  valueURI = NULL,
  prefix = NULL,
  subjectScheme = NULL,
  classificationCode = NULL
)

subject(x) <- value

is.subject(x)

Arguments

x

A dataset object created with dataset_df() or as_dataset_df().

term

A subject term, for example "Data sets".

schemeURI

URI of the subject identifier scheme, for example "http://id.loc.gov/authorities/subjects".

valueURI

URI of the subject term, for example "https://id.loc.gov/authorities/subjects/sh2018002256".

prefix

Abbreviated prefix for a scheme URI, for example "lcch:". Widely used namespaces (schemes) have conventional abbreviations.

subjectScheme

Name of the subject scheme, classification code, or authority if one is used. This acts as a namespace.

classificationCode

Classification code for schemes that do not have valueURI entries for each subject term (e.g., ANZSRC).

value

A subject object created by subject_create() or a character string. Used by ⁠subject<-⁠ to replace the subject.

Details

The subject property records what the dataset is about. The DataCite subject property allows multiple subproperties, but these cannot be stored directly in a standard utils::bibentry object. Therefore:

  • If you set a character string as the subject, it is stored in both the bibentry and the "subject" attribute.

  • If you set a structured subject (via subject_create()), the ⁠$term⁠ value is stored in the bibentry, and the full object is stored in the "subject" attribute of the dataset_df object.

Value

  • subject(x) returns:

    • a single "subject" object if only one is present,

    • a list of "subject" objects if multiple are present,

    • otherwise falls back to the plain string from the bibentry.

  • subject(x) <- value accepts a character vector, a "subject" object, or a list of "subject" objects, and updates both the bibentry slot and the "subject" attribute. Returns the dataset invisibly.

  • subject_create() returns a structured "subject" object — or a list of them if multiple terms are provided.

  • is.subject(x) returns TRUE if x inherits from class "subject".

See Also

Other bibliographic helper functions: contributor(), creator(), dataset_format(), dataset_title(), description(), geolocation(), get_bibentry(), language, publication_year(), publisher(), relation(), rights()

Examples

# Set a structured subject
subject(orange_df) <- subject_create(
  term = "Oranges",
  schemeURI = "http://id.loc.gov/authorities/subjects",
  valueURI = "http://id.loc.gov/authorities/subjects/sh85095257",
  subjectScheme = "LCCH",
  prefix = "lcch:"
)

# Retrieve subject with subproperties
subject(orange_df)


dataset documentation built on Nov. 16, 2025, 5:06 p.m.