18.104.22.168.1.1 Assignment Statements
The assignment statement takes the general form:
LHS = expression ;
expression (RHS, right-hand side) is evaluated and put into LHS (left-hand side). If LHS does not exist, it is created if possible, otherwise an error will be reported.
When a new data object is created with an assignment statement, the object created is:
- A string variable if LHS ends with a $ as in stringVar$ = "Hello."
- A numeric variable if expression evaluates to a scalar.
- A dataset if expression evaluates to a range.
When new values are assigned to an existing data object, the following conventions apply:
- If LHS is a dataset and expression is a scalar, every value in LHS is set equal to expression.
- If LHS is a numeric variable, then expression must evaluate into a scalar. If expression evaludate into a dataset, LHS retrieves the first element of the dataset.
- If both LHS and expression represent datasets, each value in LHS is set equal to the corresponding value in expression.
- If LHS is a string, then expression is assumed to be a string expression.
- If the LHS is the object.property notation, with or without $ at the end, then this notation is used to set object properties, such as the number of columns in a worksheet, like wks.ncols=3;
Examples of Assignment Statements
Assign the variable B equal to 2.
B = 2;
Assign Test equal to B raised to the third power.
Test = B^3;
Assign %A equal to Austin TX.
%A = Austin TX;
Assign every value in Book1_B to 4.
Book1_B = 4;
Assign each value in Book2_B to the corresponding position in Book1_B.
Book1_B = Book2_B;
Sets the row heading width for the Book1 worksheet to 100, using the worksheet object's rhw property. The doc -uw command refreshes the window.
Book1!wks.rhw = 100; doc -uw;
The calculation is carried out for the values at the corresponding index numbers in more and yetmore. The result is put into myData at the same index number.
myData = 3 * more + yetmore;
Note: If a string register to the left of the assignment operator is enclosed in parentheses, the string register is substitution processed before assignment. For example:
%B = DataSet;
(%B) = 2 * %B;
The values in DataSet are multiplied by 2 and put back into DataSet. %B still holds the string "DataSet".
Similar to string registers, the assignment statement is also used for string variables, like:
In this case, the expression is a string expression which can be string literals, string variables, or a concatenation of multiple strings with the + character.