Learn R Programming

pkgmaker (version 0.10.1)

new2: Alternative S4 Constructor

Description

An alternative version of new to create objects based on a list of values.

Usage

new2(class, ...)

Arguments

class
Class name to instanciate
...
extra arguments from which slot values are extracted by exact matching of names.

Examples

Run this code
setClass('A', contain='character', representation(x='numeric', y='character'))

# identical behaviour with standard calls
identical(new('A'), new2('A'))
identical(new('A', x=1), new2('A', x=1))

# but if passing that are names not slots
identical(new('A'), new2('A', b=1))
identical(new('A', x=1), new2('A', x=1, b=3))
identical(new('A', x=1), new2('A', x=1, b=3))

# standard `new` would coerce first unnamed argument into parent of 'A' (i.e. 'character')
new('A', list(x=1))
new('A', list(x=1, y='other'))
# `new2` rather use it to initialise the slots it can find in the list
identical(new('A', x=1), new2('A', list(x=1)))
identical(new('A', x=1, y='other'), new2('A', list(x=1, y='other')))

Run the code above in your browser using DataLab