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;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.
Ready to level-up your skills? Choose your own adventure.