WHICHN Function

Searches for a numeric value that is equal to the first argument, and returns the index of the first matching value.

Category: Search

Syntax

WHICHN(argument, value-1 <, value-2, …> )

Required Arguments

argument

is a numeric constant, variable, or expression that specifies the value to search for.

value

is a numeric constant, variable, or expression that specifies the value to be searched.

Details

The WHICHN function searches the second and subsequent arguments for a value that is equal to the first argument, and returns the index of the first matching value.
If string is missing, then WHICHN returns a missing value. Otherwise, WHICHN compares the value of string with value-1, value-2, and so on, in sequence. If argument value-i equals string, then WHICHN returns the positive integer i. If string does not equal any subsequent argument, then WHICHN returns 0.
Using WHICHN is useful when the values that are being searched are subject to frequent change. If you need to perform many searches without changing the values that are being searched, using the HASH object is much more efficient.

Example

The following example searches the array for the first argument and returns the index of the first matching value.
data _null_;
   array dates[*] Columbus Hastings Nicea US_Independence missing
                  Magna_Carta Gutenberg
                  (1492 1066 325 1776 . 1215 1450);
   x0=whichn(., of dates[*]);
   x1=whichn(1492, of dates[*]);
   x2=whichn(1066, of dates[*]);
   x3=whichn(1450, of dates[*]);
   x4=whichn(1000, of dates[*]);
   put x0= / x1= / x2= / x3= / x4=;
run;
SAS writes the following output to the log:
x0=.
x1=1
x2=2
x3=7
x4=0

See Also

Functions:
Other References:
The IN Operator in Numeric Comparisons in SAS Language Reference: Concepts
Using the Hash Object in SAS Language Reference: Concepts