- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
hi all!
i have to sum 100 variables, i would like to do it without writing all the names sum(var1,var2,var3, etc)
any good code, may be arrays?
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You can use variable lists in sum you name variables with a common stem such as:
total = sum (of var:); to get the total of all variables whose names start with VAR.
If using a numeric suffix as in your example you specify a range:
total = sum (of var1-var100);
You can also mix lists and variable names.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
More details.
Are you summing across a row, or column totals? Do the variables have any naming conventions? Are they side by side at least?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I sum columns totals. I previously rename them var1, var2, var3 and they are side by side, thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
If you need column totals look into proc means and proc summary. Arrays in SAS operate across columns (So sum(var1-var100) would be for each row).
Note the colon after var, then semicolon.
proc means data=have;
var var:;
output out=want1 sum=/autoname;
run;
Or proc means data=have;
var var1-var100;
output out=want2 sum= /autoname;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You can use variable lists in sum you name variables with a common stem such as:
total = sum (of var:); to get the total of all variables whose names start with VAR.
If using a numeric suffix as in your example you specify a range:
total = sum (of var1-var100);
You can also mix lists and variable names.