- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi All,
Thank you for looking into this.
Need a quick help. I am using Proc Means, where I need to filter only the variable that have countries listed in (H)..That is I need only afghanistan and china. There are more than 50 countries listed.
ex..Variable Name: bbk_country
Algeria
Afghanistan(H)
China(H)
US
Nigeria
proc means data=Test.Country(where=(bbk_country in ('(H)')));
class bbk_country;
var amount;
run;
Thanks!
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
IN in SAS is an operator and allows you to search for multiple values. You need to search your string and the appropriate functions for that are FIND/INDEX or LIKE.
Example of IN
where country in ('Afghanistan', 'China');
Example of FIND
where find(country, '(H)')>0;
@Kalai2008 wrote:
Hi All,
Thank you for looking into this.
Need a quick help. I am using Proc Means, where I need to filter only the variable that have countries listed in (H)..That is I need only afghanistan and china. There are more than 50 countries listed.
ex..Variable Name: bbk_country
Algeria
Afghanistan(H)
China(H)
US
Nigeria
proc means data=Test.Country(where=(bbk_country in ('(H)')));
class bbk_country;
var amount;
run;
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You may be more limited using the dataset option where than a separate where clause.
You can use functions in a WHERE statement such as:
proc means data=Test.Country ;
where find(bbk_country,'(H)','i')>0;
which would find (H) or (h) with the 'i' option.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You can try like this if you only want to filter countries that are listed with (H)
proc means data=Test.Country(where=(bbk_country like '%(H)'));
class bbk_country;
var amount;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I tried before like this...instead I used '%(H)%'
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
proc means data=Test.Country(where=(bbk_country contains '(H)' ));
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
IN in SAS is an operator and allows you to search for multiple values. You need to search your string and the appropriate functions for that are FIND/INDEX or LIKE.
Example of IN
where country in ('Afghanistan', 'China');
Example of FIND
where find(country, '(H)')>0;
@Kalai2008 wrote:
Hi All,
Thank you for looking into this.
Need a quick help. I am using Proc Means, where I need to filter only the variable that have countries listed in (H)..That is I need only afghanistan and china. There are more than 50 countries listed.
ex..Variable Name: bbk_country
Algeria
Afghanistan(H)
China(H)
US
Nigeria
proc means data=Test.Country(where=(bbk_country in ('(H)')));
class bbk_country;
var amount;
run;
Thanks!