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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.