Good afternoon – in the below data set that I have narrowed down, I’m running into the problem of how to sum up 1 column, while keeping the others constant. For example, I want to sum up the # of people that are eligible for MASS, BOSTON, SEAFOOD,
Dataset example is:
STATE |
CITY |
FOOD |
NAME |
Eligible2 |
MASS |
BOSTON |
SEAFOOD |
MARY |
1 |
MASS |
BOSTON |
SEAFOOD |
FRANK |
1 |
MASS |
BOSTON |
SEAFOOD |
DAN |
1 |
MASS |
BOSTON |
SEAFOOD |
SAM |
0 |
While what I’m hoping for an output would be:
STATE |
CITY |
FOOD |
Eligible |
MASS |
BOSTON |
SEAFOOD |
3 |
Any suggestions?
Thank you!
Proc SQL;
create table want as
select State, city, food, sum(eligible2) as eligible
from havetable
group by state, city, food
;
quit;
Something like this?
Thank you dsbihill. That got me down to just one error:
22
ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string,
a numeric constant, a datetime constant, a missing value, BTRIM, INPUT, PUT,
SUBSTRING, USER.
Hello,
As an alternative you can try:
proc means data=sashelp.cars nway sum nonobs;
class make type origin;
var invoice;
run;
Also Proc Summary can be used for purpose like this.
proc summary data=have sum nway ;
class State City Food;
var Eligible2 ;
output out=want(drop=_type_ _freq_) sum=Eligible;
run;
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.