Functions and CALL Routines

# 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, ...>)

### 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.

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.

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```

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

 Previous Page | Next Page | Top of Page