In this tutorial, you will learn how to use wildcard character in SAS.

## Example 1 : Keep all the variables start with 'X'

DATA READIN; INPUT ID X1 X_T $; CARDS; 2 3 01 3 4 010 4 5 022 5 6 021 6 7 032 ; RUN;

DATA READIN2; SET READIN (KEEP = X:); RUN;

The **COLON (:) **tells SAS to select all the variables starting with the character 'X'.

## Example 2 : Filter data using wildcard character

DATA READIN2;

SET READIN;

IF X_T =: '01';

RUN;

In this case, the **COLON (:) **tells SAS to select all the observations (rows) starting with the character '01'.

## Example 3 : Use of WildCard in IN Operator

DATA READIN2;

SET READIN;

IF X_T IN: ('01', '02');

RUN;

In this case, the **COLON (:) **tells SAS to select all the observations starting with the character '01' or '02'.

## Example 4 : Use of WildCard in GT LT (> <) Operators

DATA READIN2;In this case, the

SET READIN;

IF X_T >: '01';

RUN;

**COLON (:)**tells SAS to select all the cases from character '01' up alphabetically.

## Example 5 : WildCard in Function

data example3;

set temp2;

total =sum(of height:);

run;

- The
`TOTAL = SUM(OF height:);`

statement calculates the sum of all variables that start with`height`

and assigns the result to the`total`

variable. `SUM()`

is a SAS function used to calculate the sum of numeric variables.`OF height:`

specifies a variable list that includes all variables that start with`height`

.- The colon
`:`

is a wildcard that matches any characters following`height`

.

## Example 6 : WildCard in Array

proc sort data = sashelp.class out=class;

by name sex;

run;

proc transpose data = sashelp.class out=temp;

by name sex;

var height weight;

run;

proc transpose data = temp delimeter=_ out=temp2(drop=_name_);

by name;

var col1;

id _name_ sex;

run;

proc sql noprint;

select CATS('new_',name) into: newnames separated by " "

from dictionary.columns

where libname = "WORK" and memname = "TEMP2" and name like "Height_%";

quit;

data temp2;

set temp2;

array h(*) height:;

array newh(*) &newnames.;

do i = 1 to dim(h);

newh{i} = h{i}*2;

end;

drop i;

run;

Thank You Deepanshu, This Is great! Very Efficient!

ReplyDeleteIn the example 6 in the last SQL step in the WHERE clause must be upcase(name) like "height_%"; (or use "Height_%").

ReplyDeleteDid you mean lowcase(name) like "height_%"?

DeleteHello ,

ReplyDeleteCan you please explain Example 6 : WildCard in Array concept in detail?

This comment has been removed by the author.

ReplyDeletei didn't get the Array part. what it does and what would be the output

ReplyDeleteHello,

ReplyDeleteI always really appreciate your contribution.

your contents are really easy and useful.

Please don't stop posting.

Thank and Have a great day!

This is very useful tutorial.Thank you

ReplyDelete