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