MINFIELDWIDTH procedure

Calculates minimum field widths for printing data structures (R.W. Payne).

Option

IPRINT = string tokens What identifier and/or text to print for the structure (identifier, extra); default is to take the IPRINT setting of each STRUCTURE

Parameters

STRUCTURE = identifiers Data structures to be printed
FIELDWIDTH = scalars Saves the minimum field widths
DECIMALS = scalars Number of decimal places to be used for numerical data structures; if unset, a default is obtained using the DECIMALS procedure
SKIP = scalars Number of spaces to leave before each value of the structure; default 1
FREPRESENTATION = string tokens How to represent factor values (labels, levels, ordinals); default is to use labels if available, otherwise levels

Description

MINFIELDWIDTH can be used to calculate the minimum field width that would be required to print a data structure in an even column down the page using the PRINT directive. The data structures are specified by the STRUCTURE parameter, and can be any of those supported by Genstat. The calculated field width is saved, in a scalar, by the FIELDWIDTH parameter.

The IPRINT option indicates how the values of each STRUCTURE are to be labelled, so that the field widths will be wide enough for the column headings as well as the data values. The identifier setting uses the identifier of the STRUCTURE, while the extra setting used the information that can be specified by the EXTRA parameter when data structures are defined by directives like VARIATE, FACTOR and TEXT. You can set IPRINT=* to indicate that the values are not to be labelled by either of these. Alternatively, if IPRINT is not specified, the default is taken from the IPRINT attribute of the STRUCTURE (which can be set by the IPRINT option of VARIATE, FACTOR, TEXT etc). This is the same default that is used by PRINT if its own IPRINT option is not specified.

With numerical structures, like variates or matrices, the DECIMALS parameter specifies the number of decimal places that are to be used. If you set DECIMALS to a scalar containing a missing value, the DECIMALS procedure is used by MINFIELDWIDTH to determine a default number of decimal places, and this is stored in the scalar so that you can use it later. The DECIMALS procedure is also used to obtain a default if the DECIMALS parameter is not set.

The SKIP parameter specifies how many spaces are to be left before each element of each STRUCTURE; default 1.

The FREPRESENTATION parameter controls the printing of the factor values. The default is to print labels if there are any; if there are none, it is assumed that levels will be printed. The ordinals setting represents the values by the integers 1 upwards.

Option: IPRINT.

Parameters: STRUCTURE, FIELDWIDTH, DECIMALS, SKIP, FREPRESENTATION.

Action with RESTRICT

Any restrictions are ignored.

See also

Directive: PRINT.

Procedure: DECIMALS.

Commands for: Input and output.

Example

CAPTION  'MINFIELDWIDTH example'; STYLE=meta
VARIATE       X[1...7]; VALUE=!(0.1,0.2...0.9),!(11,21...91),!(-1...-9),\
                              !(-99,0,999),!(-999,0,99),!(-99,0,9999),!(0)
SCALAR        D[1...7],F[1...7]
MINFIELDWIDTH [IPRINT=*] X[]; FIELDWIDTH=F[]; DECIMALS=D[]
PRINT         F[],D[]; FIELD=11; DECIMALS=0
PRINT         [IPRINT=*] X[]; FIELD=F[]; DECIMALS=D[]
Updated on March 7, 2019

Was this article helpful?