Help using Base SAS procedures

How do you label values in different format?

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 14
Accepted Solution

How do you label values in different format?

I had this assignment last week for an intro to SAS class that I am taking involving and we are working with arrays. I was supposed to present this data in a chart as described in the excel sheet I am attaching. I have managed to get everything to work except for labeling the agegroups (1-4) with different names (>30, 31-45, 46-60, 60+). It was suggested to continue using the else-if statements or to use proc format. Below is what I have, but it is just creating a new variable 'i'. Does anyone have any suggestions?

data HW4_F17; 
length Profession $ 9 Housingtype $ 11 tenure $ 5 Response $ 3;
array c condo1-condo4;
array t town1 - town4;
do profession = 'Physician','Professor','Engineer';
   do tenure ='Rent','Own','Lease';
      do response='Yes','No';
         input condo1-condo4 Town1-Town4;
         do agegroup=1 to 4;
            Housingtype='Condominium';
            Number = c[agegroup];
            output;
         end;
         do agegroup=1 to 4;
            Housingtype='Townhomes';
            Number = t[agegroup];
            output;
         end;
		 do agegroup=1 to 4;
		 	if i=1 then agegroup='>30';
			else if i=2 then agegroup='31-45';
			else if i=3 then agegroup='46-60';
			else if i=4 then agegroup='60+';
		end;
      end;
   end;
end;
drop condo: town:;		
datalines;
18 15 6 8 34 10 2 3
15 13 9 10 28 4 6 9
5 3 1 2 56 56 35 45
1 1 1 3 12 21 8 15
16 18 6 17 37 11 3 22
12 10 3 9 23 9 1 14
17 10 15 13 29 3 7 8
34 17 19 23 44 13 16 15
2 0 3 1 23 52 49 25
3 2 0 2 9 31 51 19
15 18 6 8 32 11 3 7
14 9 3 10 23 11 1 5
30 23 21 18 22 13 11 10
25 19 40 30 25 16 12 16
8 5 1 6 54 191 102 95
4 2 2 3 19 76 61 54
10 21 8 11 29 10 4 11
11 9 4 7 21 9 2 13
;	

proc print data=HW4_F17;
	title 'Tabulation of data from HW4_F17 data set';
run;

Accepted Solutions
Solution
‎10-14-2017 11:23 PM
Super User
Super User
Posts: 8,097

Re: How do you label values in different format?

[ Edited ]

I would tell the instructor that there is no need for any ARRAY statements to perform that task.

data HW4_F17; 
length Profession Housingtype Tenure Response AgeGroup $20 Number 8;
do profession = 'Physician','Professor','Engineer';
  do tenure ='Rent','Own','Lease';
    do response='Yes','No';
      do Housingtype='Condominium','Townhomes';
        do agegroup='<=30','31-45','46-60','60+';
          input number @@ ;
          output;
        end;
      end;
    end;
  end;
end;

View solution in original post


All Replies
Super User
Posts: 6,773

Re: How do you label values in different format?

Very few posters will risk opening a spreadsheet.  So mostly you will be getting "blind" answers to your questions, if any.

 

Note that creating a new variable is the whole idea of IF/THEN statements.  If that is the result you are obtaining, and if the values of the new variable are correct, your work is done.  I leave it up to you to determine whether you have obtained the proper values, but will note one piece that needs to be changed.

 

Your program defines AGEGROUP as a numeric variable, because this statement is the first one to mention AGEGROUP:

 

do agegroup=1 to 4;

 

As a result, you cannot assign character strings to AGEGROUP.  This statement would generate a note on the log:

 

if i=1 then agegroup='> 30' ;

 

Always read the log.  You cannot afford to ignore such notes.

 

There are several other issues that appear suspicious, such as nesting the INPUT statement inside DO loops, and outputting before all the IF/THEN statements have been applied.  To get more help, you will probably need to spell out what the results should look like for your first line of data.  Nothing helps like knowing where you are heading.

Occasional Contributor
Posts: 14

Re: How do you label values in different format?

Posted in reply to Astounding

@Astounding Thank you for that information. I really appreciate it. As a new user, and teaching myself, I am still very much trying to figure out how all of this works. Also, thank you for the heads up about the excel sheet thing. Smiley Happy

 

Solution
‎10-14-2017 11:23 PM
Super User
Super User
Posts: 8,097

Re: How do you label values in different format?

[ Edited ]

I would tell the instructor that there is no need for any ARRAY statements to perform that task.

data HW4_F17; 
length Profession Housingtype Tenure Response AgeGroup $20 Number 8;
do profession = 'Physician','Professor','Engineer';
  do tenure ='Rent','Own','Lease';
    do response='Yes','No';
      do Housingtype='Condominium','Townhomes';
        do agegroup='<=30','31-45','46-60','60+';
          input number @@ ;
          output;
        end;
      end;
    end;
  end;
end;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 265 views
  • 2 likes
  • 3 in conversation