Forms vectors with the restricted subset of a list of vectors (R.W. Payne).
Options
METHOD = string token |
Whether to form the new vectors only when the old vectors are restricted or aways (always , whenrestricted ); default alwa |
---|---|
RESTRICTED = scalar |
Scalar set to 1 or 0 according to whether or not the old vectors are found to be restricted |
VRESTRICTED = variate |
Variate with each unit set to 1 or 0 according to whether or not that unit is restricted in any of the OLDVECTORS |
SETLEVELS = string token |
Whether to reform the levels (and labels) of factors to exclude those that do not occur in the restricted subset (yes , no ); default no |
Parameters
OLDVECTOR = factors, variates or texts |
List of vectors, one or more of which may be restricted |
---|---|
NEWVECTOR = factors, variates or texts |
New vectors which will contain only the unrestricted units of the old vectors |
Description
The RESTRICT
directive can be used in Genstat to associate a “restriction” with a vector, so that subsequent directives operate on only a subset of its units (see the Guide to the Genstat Command Language, Part 1, Section 4.4.1). This is very convenient, as the full set of data is still available and can be reinstated by cancelling the restriction. However, there are also occasions when it may be preferable to form a vector that contains only the restricted units. This is particularly true within procedures that may themselves need to apply restrictions, in addition to those already applied to their input vectors.
The OLDVECTOR
parameter specifies the list of possibly-restricted vectors, and the NEWVECTOR
parameter specifies a list of vectors to store the values from their unrestricted units. FRESTRICTEDSET
first checks whether any of the old vectors is restricted and, if more than one is restricted, it gives a fault if the restrictions are not the same. The unrestricted set is defined to contain the units that are not restricted on any of the vectors. The RESTRICTED
option can be set to a scalar which will be set to one or zero according to whether or not any OLDVECTOR
was restricted, and the VRESTRICTED
option can save a variate containing 0 in the restricted units and 1 in the unrestricted units. The METHOD
option controls whether the new vectors are formed irrespective of whether or not the old vectors are restricted, or only if they are restricted. If the restricted subset excludes some of the levels of a factor, a new reduced set of levels (and labels) can be requested by setting option SETLEVELS=yes
.
Options: METHOD
, RESTRICTED
, VRESTRICTED
, SETLEVELS
.
Parameters: OLDVECTOR
, NEWVECTOR
.
Method
FRESTRICTEDSET
first uses directives such as GETATTRIBUTE
, CALCULATE
and GROUPS
to check whether any vector is restricted, whether the restrictions are compatible and to form a logical variable to indicate which units are not excluded by the restriction. It then calls SUBSET
to form the new vectors.
Action with RESTRICT
Restrictions on the old vectors are used to determine which of their units should be copied to the new vectors.
See also
Directive: RESTRICT
.
Procedure: SUBSET
.
Commands for: Calculations and manipulation, Program control.
Example
CAPTION 'FRESTRICTEDSET example'; STYLE=meta VARIATE [VALUES=1...10] X TEXT [VALUES=a,b,c,d,e,f,g,h,i,j] T FACTOR [LEVELS=2; VALUES=5(1,2)] F PRINT X,F,T; FIELD=12; DECIMALS=0 RESTRICT F,T; X2 FRESTRICTEDSET X,F,T; NEWVECTORS=X2,F2,T2 PRINT X2,F2,T2; FIELD=12; DECIMALS=0