Objects of class "person"
can hold information about an
arbitrary positive number of persons. These can be obtained by one
call to person()
with list arguments, or by first creating
objects representing single persons and combining these via
c()
. The format()
method collapses information about persons into
character vectors (one string for each person): the fields in
include
are selected, each collapsed to a string using the
respective element of collapse
and subsequently
embraced using the respective element of braces
, and
finally collapsed into one string separated by white space. If
braces
and/or collapse
do not specify characters for all
fields, the defaults shown in the usage are imputed. The
print()
method calls the format()
method and prints the
result, the toBibtex()
method creates a suitable BibTeX
representation.
Person objects can be subscripted by fields (using $
) or by
position (using [
).
as.person()
is a generic function. Its default method tries to
reverse the default person formatting, and can also handle formatted
person entries collapsed by comma or "and"
(with appropriate
white space).
Personal names are rather tricky, e.g.,
https://en.wikipedia.org/wiki/Personal_name.
The current implementation (starting from R 2.12.0) of the
"person"
class uses the notions of given (including
middle names) and family names, as specified by given
and family
respectively. Earlier versions used a scheme based
on first, middle and last names, as appropriate for most of Western
culture where the given name precedes the family name, but not
universal, as some other cultures place it after the family name, or
use no family name. To smooth the transition to the new scheme,
arguments first
, middle
and last
are still
supported, but their use is deprecated and they must not be given in
combination with the corresponding new style arguments. For persons
which are not natural persons (e.g., institutions, companies, etc.) it
is appropriate to use given
(but not family
) for the
name, e.g., person("R Core Team", role = "aut")
.
The new scheme also adds the possibility of specifying roles
based on a subset of the MARC Code List for Relators
(https://www.loc.gov/marc/relators/relaterm.html).
When giving the roles of persons in the context of authoring Rpackages, the following usage is suggested.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
In the old scheme, person objects were used for single persons, and a
separate "personList"
class with corresponding creator
personList()
for collections of these. The new scheme employs
a single class for information about an arbitrary positive number of
persons, eliminating the need for the personList
mechanism.