I have the following data
DATA HAVE;
input year dz area;
cards;
2000 1 08
2000 1 06
2000 1 06
2001 1 08
2001 1 06
2001 1 06
2002 1 08
2002 1 06
2002 1 06
;
run;
I want separate outputs for proc freq dz*area for each year. I can subset data for each year and get the desired table for each year.
data want_2000;
set have;
if year =2000 then output want_2000;
run;
proc freq data=want_2000;
table dz*area;
run;
However, I have too many years to subset the data for each. I want to create a loop to subset each each year's data and then may be a loop to do the proc freq for each subset. Is there a way to use 'array' to be able do what I want?
Use a BY statement.
proc sort data=have;
by year;
run;
proc freq data=have;
by year;
table dz*area;
run;
@Priyamvada07 wrote:
I have the following data
DATA HAVE;
input year dz area;
cards;
2000 1 08
2000 1 06
2000 1 06
2001 1 08
2001 1 06
2001 1 06
2002 1 08
2002 1 06
2002 1 06
;
run;
I want separate outputs for proc freq dz*area for each year. I can subset data for each year and get the desired table for each year.
data want_2000;
set have;
if year =2000 then output want_2000;
run;
proc freq data=want_2000;
table dz*area;
run;
However, I have too many years to subset the data for each. I want to create a loop to subset each each year's data and then may be a loop to do the proc freq for each subset. Is there a way to use 'array' to be able do what I want?
Use a BY statement.
proc sort data=have;
by year;
run;
proc freq data=have;
by year;
table dz*area;
run;
@Priyamvada07 wrote:
I have the following data
DATA HAVE;
input year dz area;
cards;
2000 1 08
2000 1 06
2000 1 06
2001 1 08
2001 1 06
2001 1 06
2002 1 08
2002 1 06
2002 1 06
;
run;
I want separate outputs for proc freq dz*area for each year. I can subset data for each year and get the desired table for each year.
data want_2000;
set have;
if year =2000 then output want_2000;
run;
proc freq data=want_2000;
table dz*area;
run;
However, I have too many years to subset the data for each. I want to create a loop to subset each each year's data and then may be a loop to do the proc freq for each subset. Is there a way to use 'array' to be able do what I want?
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.