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 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 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.
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
function. For example:
sum_n(['card1bal' 'card2bal''card3bal'])
mean_n(['card1bal' 'card2bal''card3bal'])
See 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 Special fields for more information.