I'm on SAS University Edition - I have a data set with 792 rows and 29 columns; each column is a variable with value "0" or "1". I would like to make a table with 792 rows and a single column, with the value of the single column being the number of "1"s in the corresponding observation.
For example:
varA varB varC varD
1 1 0 1
0 0 0 1
1 1 1 0
1 1 1 1
0 0 0 0
1 0 1 0
output:
3
1
3
4
0
2
Sorry if this is a basic question - I've new to SAS, and have looked around the forums and the internet without finding anything that has worked for me. Much thanks!!
I'm thinking that your real variable names don't all begin with "var". If you want the sum of all numeric variables, you could use:
data want;
set have;
new_column = sum(of _numeric_);
run;
There's not much point in putting this new column into a separate data set. Once you do that, if you were to ever sort your data you couldn't match the new column back to the row that it came from.
data want (keep=sum); set have; array vars(*) varA--VarD; sum=sum(of vars(*)); run;
Art, CEO, AnalystFinder.com
this should work
data want(drop=var:); set have; finalvar=sum(of var:); run;
I'm thinking that your real variable names don't all begin with "var". If you want the sum of all numeric variables, you could use:
data want;
set have;
new_column = sum(of _numeric_);
run;
There's not much point in putting this new column into a separate data set. Once you do that, if you were to ever sort your data you couldn't match the new column back to the row that it came from.
Thanks, all! Looks like there a couple of ways to do this - I appreciate the help.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Get started using SAS Studio to write, run and debug your SAS programs.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.