i want to subset my dataset by where multiple variables are equal to the number 1. I have been doing this by using the following code:
data want;
set have;
where group=1 or fish-=1 or net=1 or food=1;
run;
I was wandering if there was a shorter way to write this, as it would be much longer if there were a lot of variables. i.e something along the lines of writing all the variables out and only having to write one '=1' in the code.
Cheers
WHICHN()
where whichn(1, var1, var2, var3, ... );
If you can use IF instead variable lists can be used:
if whichn(1, of var:)>0;
WHICHN()
where whichn(1, var1, var2, var3, ... );
If you can use IF instead variable lists can be used:
if whichn(1, of var:)>0;
@BenBradyIf you wanna play:
data have;
a=1;
b=0;
c=0;
output;
a=0;
b=0;
c=0;
output;
run;
data want;
set have;
array n _numeric_;
if 1 in n;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.