representation package:methods R Documentation _C_o_n_s_t_r_u_c_t _a _R_e_p_r_e_s_e_n_t_a_t_i_o_n _o_r _a _P_r_o_t_o_t_y_p_e _f_o_r _a _C_l_a_s_s _D_e_f_i_n_i_t_i_o_n _D_e_s_c_r_i_p_t_i_o_n: In calls to 'setClass', these two functions construct, respectively, the 'representation' and 'prototype' arguments. They do various checks and handle special cases. You're encouraged to use them when defining classes that, for example, extend other classes as a data part or have multiple superclasses, or that combine extending a class and slots. _U_s_a_g_e: representation(...) prototype(...) _A_r_g_u_m_e_n_t_s: ...: The call to representation takes arguments that are single character strings. Unnamed arguments are classes that a newly defined class extends; named arguments name the explicit slots in the new class, and specify what class each slot should have. In the call to 'prototype', if an unnamed argument is supplied, it unconditionally forms the basis for the prototype object. Remaining arguments are taken to correspond to slots of this object. It is an error to supply more than one unnamed argument. _D_e_t_a_i_l_s: The 'representation' function applies tests for the validity of the arguments. Each must specify the name of a class. The classes named don't have to exist when 'representation' is called, but if they do, then the function will check for any duplicate slot names introduced by each of the inherited classes. The arguments to 'prototype' are usually named initial values for slots, plus an optional first argument that gives the object itself. The unnamed argument is typically useful if there is a data part to the definition (see the examples below). _V_a_l_u_e: The value pf 'representation' is just the list of arguments, after these have been checked for validity. The value of 'prototype' is the object to be used as the prototype. Slots will have been set consistently with the arguments, but the construction does _not_ use the class definition to test validity of the contents (it hardly can, since the prototype object is usually supplied to create the definition). _R_e_f_e_r_e_n_c_e_s: Chambers, John M. (2008) _Software for Data Analysis: Programming with R_ Springer. (For the R version.) Chambers, John M. (1998) _Programming with Data_ Springer (For the original S4 version.) _S_e_e _A_l_s_o: 'setClass' _E_x_a_m_p_l_e_s: ## representation for a new class with a directly define slot "smooth" ## which should be a "numeric" object, and extending class "track" representation("track", smooth ="numeric") setClass("Character",representation("character")) setClass("TypedCharacter",representation("Character",type="character"), prototype(character(0),type="plain")) ttt <- new("TypedCharacter", "foo", type = "character") setClass("num1", representation(comment = "character"), contains = "numeric", prototype = prototype(pi, comment = "Start with pi"))