Summarizing Multiple Fields

The CLEM language includes a number of functions that return summary statistics across multiple fields. These functions may be particularly useful in analyzing survey data, where multiple responses to a question may be stored in multiple fields. See the topic Working with Multiple-Response Data for more information.

Comparison Functions

You can compare values across multiple fields using the min_n and max_n functions—for example:

max_n(['card1fee' 'card2fee''card3fee''card4fee'])

You can also use a number of counting functions to obtain counts of values that meet specific criteria, even when those values are stored in multiple fields. For example, to count the number of cards that have been held for more than five years:

count_greater_than(5, ['cardtenure' 'card2tenure' 'card3tenure'])

To count null values across the same set of fields:

count_nulls(['cardtenure' 'card2tenure' 'card3tenure'])

Note that this example counts the number of cards being held, not the number of people holding them. See the topic Comparison Functions for more information.

To count the number of times a specified value occurs across multiple fields, you can use the count_equal function. The following example counts the number of fields in the list that contain the value Y.

count_equal("Y",[Answer1, Answer2, Answer3])

Given the following values for the fields in the list, the function returns the results for the value Y as shown.

Table 1. Function values
Answer1 Answer2 Answer3 Count
Y N Y 2
Y N N 1

Numeric Functions

You can obtain statistics across multiple fields using the sum_n, mean_n, and sdev_n functions—for example:

sum_n(['card1bal' 'card2bal''card3bal'])
mean_n(['card1bal' 'card2bal''card3bal'])

See the topic Numeric Functions for more information.

Generating Lists of Fields

When using any of the functions that accept a list of fields as input, the special functions @FIELDS_BETWEEN(start, end) and @FIELDS_MATCHING(pattern) can be used as input. For example, assuming the order of fields is as shown in the sum_n example earlier, the following would be equivalent:

sum_n(@FIELDS_BETWEEN(card1bal, card3bal))

Alternatively, to count the number of null values across all fields beginning with "card":

count_nulls(@FIELDS_MATCHING('card*'))

See the topic Special Fields for more information.