VECTOR: Short Form (VECTOR command)
VECTOR can
be used to create a list of new variables and the vector that refers
to them simultaneously. The short form of VECTOR specifies a prefix of alphanumeric characters
followed, in parentheses, by the length of the vector (the number
of variables to be created).
- The new variable names must not conflict with existing variables. If the prefix starts with the # character, the new variables are created according to the rules for scratch variables.
- More than one vector of the same length can be created by naming two or more prefixes before the length specification.
- By default, variables created with
VECTORreceiveF8.2formats. Alternative formats for the variables can be specified by including a format specification with the length specification within the parentheses. The format and length can be specified in either order and must be separated by at least one space or comma. If multiple vectors are created, the assigned format applies to all of them unless you specify otherwise.
Creating a Vector from a Set of New Scratch Variables
VECTOR #WORK(10).
- The program creates the vector #WORK, which refers to 10 scratch variables: #WORK1, #WORK2, and so on, through #WORK10. Thus, the element #WORK(5) of the vector is the variable #WORK5.
Creating Multiple Vectors of the Same Length
VECTOR X,Y(5).
-
VECTORcreates the vectors X and Y, which refer to the new variables X1 through X5 and Y1 through Y5, respectively.
Specifying the Format of Vector Variables
VECTOR X(6,A5).
-
VECTORassigns anA5format to the variables X1 through X6.
Creating Multiple Vectors of Different Lengths and Formats
VECTOR X,Y(A5,6) Z(3,F2).
-
VECTORassignsA5formats to the variables X1 to X6 and Y1 to Y6, andF2formats to the variables Z1 to Z3. It doesn’t matter whether the format or the length is specified first within the parentheses.
Predetermining Variable Order Using the Short Form of VECTOR
INPUT PROGRAM.
VECTOR X Y (4,F8.2).
DATA LIST / X4 Y4 X3 Y3 X2 Y2 X1 Y1 1-8.
END INPUT PROGRAM.
PRINT /X1 TO X4 Y1 TO Y4.
BEGIN DATA
49382716
49382716
49382716
END DATA.
- The short form of
VECTORis used to establish the dictionary order of a group of variables before they are defined on aDATA LISTcommand. To predetermine variable order, bothVECTORandDATA LISTmust be enclosed within theINPUT PROGRAMandEND INPUT PROGRAMcommands. - The order of the variables in the active dataset
will be X1, X2, X3, and X4, and Y1, Y2, Y3, and Y4, even though they are
defined in a different order on
DATA LIST. - The program reads the variables with the
F1format specified onDATA LIST. It writes the variables with the output format assigned onVECTOR(F8.2). - Another method for predetermining variable order
is to use
NUMERIC(orSTRINGif the variables are string variables) before theDATA LISTcommand (see the example on variable order for the NUMERIC command) . The advantage of usingNUMERICorSTRINGis that you can assign mnemonic names to the variables.
Name Conflicts in Vector Assignments
INPUT PROGRAM.
NUMERIC MIN MINI_A MINI_B MINIM(F2).
COMPUTE MINI_A = MINI(2). /*MINI is function MINIMUM.
VECTOR MINI(3,F2).
DO REPEAT I = 1 TO 3.
+ COMPUTE MINI(I) = -I.
END REPEAT.
COMPUTE MIN = MIN(1). /*The second MIN is function MINIMUM.
COMPUTE MINI_B = MINI(2). /*MINI now references vector MINI
COMPUTE MINIM = MINIM(3). /*The second MINIM is function MINIMUM.
END CASE.
END FILE.
END INPUT PROGRAM.
- In this example, there are potential name conflicts
between the scalars (the variables named on
NUMERIC), the vectors (named onVECTOR), and the statistical functionMINIMUM. - A name that is not followed by a left parenthesis is treated as a scalar.
- When a name followed by a left parenthesis may refer to a vector element or a function, precedence is given to the vector.