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 COLON (:) tells SAS to select all the cases from character '01' up alphabetically.
SET READIN;
IF X_T >: '01';
RUN;
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 withheight
and assigns the result to thetotal
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 withheight
.- The colon
:
is a wildcard that matches any characters followingheight
.
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