In SAS, we can check if a variable contains a specific string with the contains operator in a where statement.

data want;
   set have;
   where variable contains "something";
run;

When working in SAS, the ability to easily be able to create complex filters and get the subsets we desire is valuable.

One such filter which we can create in SAS is filtering a dataset where a variable contains a specific string.

We can check if a variable contains a string in a where statement with the SAS contains() operator.

Let’s say we have following data set which we create with the following data step:

data have;
    input animal_type $ gender $ weight age state $ trained $;
    datalines;
    cat  male     10    1    CA     no
    dog  male     20    4    FL     no
    dog  male     30    5    NY     no
    cat  female   40    3    FL     yes
    cat  female   10    2    NY     yes
    dog  female   20    4    TX     yes
    cat  female   50    6    TX     yes
    dog  male     60    1    CA     no
    dog  male     70    5    NY     no
    cat  female   80    4    FL     yes
    cat  female   90    3    TX     yes
    cat  male     100   2    MN     no
    dog  female   80    4    MN     no
    ;
run;

If we to get a subset of all of the records where the state contains “N”, we can do that in a where statement in the following code.

data want;
   set have;
   where state contains "N";
run;

Below is the resulting dataset.

sas contains

Checking if SAS Variable Contains Multiple Strings

Unfortunately, there is no way that you can check if a variable contains multiple strings with the contains() operator.

In that case, you will have to use the or operator to string together contains() statements.

Let’s say we have the same dataset as above.

If you want to check for states which contains “N” or “L”, we can do so in the following where statement.

data want;
   set have;
   where state contains "N" or state contains "F";
run;

Hopefully this article has been useful for you to learn how to subset a dataset in a SAS data step with the SAS contains() operator.

Categorized in:

SAS,

Last Update: March 1, 2024