new {methods} | R Documentation |
Given the the name or the definition of a class, plus optionally
data to be included in the object, new
returns an object from that class.
new(Class, ..., .Force=FALSE)
Class |
Either the name of a class (the usual case) or the
object describing the class (e.g., the value returned by getClass ). |
... |
Data to include in the new object. Named arguments correspond to slots in the class definition. Unnamed arguments must be objects from classes that this class extends. |
.Force |
Normally, an attempt to apply new to a virtual
or an undefined class generates an error. If .Force is
TRUE , an ``empty'' object is returned instead. Users are
very unlikely to need this argument. |
The function begins by copying the prototype object from the class definition. Then information is inserted according to the ... arguments, if any, first from the superclasses (the unnamed arguments) then from the named slots. Thus, explicit slots override inherited information for the same slot, regardless of the order in which the arguments appear.
Note that the basic vector classes, "numeric"
, etc. are implicitly defined,
so one can use new
for these classes.
John Chambers
The web page http://www.omegahat.org/RSMethods/index.html is the primary documentation.
The functions in this package emulate the facility for classes and methods described in Programming with Data, (John M. Chambers, Springer, 1998). See this book for further details and examples.
## using the definition of class "track" from Classes ## a new object with two slots specified t1 <- new("track", x = seq(along=ydata), y = ydata) # a new object including an object from a superclass, plus a slot t2 <- new("trackCurve", t1, smooth = ysmooth)