Hello all,
I use SAS 9.3 here and there for work stuff, I know some of the basics but I'm drawing a blank trying to figure out 2 things. Was really hoping for some help.
1) I have variable of just numbers from 0-100. I'd like to tell SAS to group them into 3 groups (0, 1-10, and 10+) so I can analyze using those three groups. How can I do this? I know it's probably something simple but I'm drawing a blank...
2) I have 10 variables, each with numbers varying from 1-5. I want to tell SAS to give me all the answers that were "1" or "2" or "3" overall and by year...how can I do that?
Everything else I need I was able to figure out one way or another except those...any help would be so appreciated. Thanks. I hope I was clear enough...
1)
/*assign group number based on numeric value*/
data answer1;
set one;
if number_var =0 then group_no=1;
else if number_var le 10 then group_no=2;
else group_no=3;
run;
/*sample frequency analysis*/
proc freq data=answer1;
tables group_no;
run;
2)
/*simple subsetting of numeric variable. */
data answer2;
set two;
where number_var in (1,2,3);
run;
/*print new dataset, year information should have been kept from original dataset,*/
proc print data=answer2;
run;
First one I got down perfect thanks to you. THANK YOU!!
I still need a little bit of help on the second. I might not have been clear enough.
I have a dataset called surveys2.
Within that dataset I have 10 variables, each a separate question. (the variables are named q1 q2 q3 ...q10).
Each questions has a 343 rows, in each row is a number 1-5 or 8 (people's answer to the question)
I want to sum up all the answers of 1, 2, 3, 4 ,5 or 8 separately and break them out by year.
For eg: How many ppl answered three in total or in 2010 for each question and overall.
How can I do that?
As I understand survays2 has 11 variables and 343 observations, the first 10 variables have numeric values within (1, 2, 3, 4, 5, 8), (I assume 8 implies the person (observation) didn't answer atall). The last variable is the year.
Q: How many ppl answered three in total or in 2010 for each question and overall.
I am tying to make sense of this question; are you asking how many people answered question the in 2010, and answered question 3 in all time?
If so here is the answer:
/* how did people answer question 3 in 2010> */
proc freq data=survay2(where=(year=2010));
tables q3;
run;
/* how did people answer question 3 in over all years? */
proc freq data=survay2;
tables q3*year;
run;
This should give you a cross-tabulation that provides a yearly breakdown of people's answers.
Change your data format to the following structure:
Person Question Year Response
You can use proc transpose to change the data format.
SAS Learning Module: How to reshape data wide to long using proc transpose
Then you can use Proc Freq to analyze your data easily.
EG.
proc freq data=have;
table year*response/out=summary1;
run;
You can use one of the CAT functions to count how many responses were 1,2,3,4,5 or 8 in each row. Something like:
Data sum_response ;
set survey2;
count1 = countc(catt(of q1-q10), '1');
count2 = countc(catt(of q1-q10), '2');
etc . . .
count8 = countc(catt(of q1-q10), '8');
run;
1) I have variable of just numbers from 0-100. I'd like to tell SAS to group them into 3 groups (0, 1-10, and 10+) so I can analyze using those three groups. How can I do this? I know it's probably something simple but I'm drawing a blank...
Another way to analyze things in groups without having to add anything to your data is custom formats.
Try:
Proc format library=work;
value mygroup
0 = ' 0'
1 - 10 = ' 1 to 10'
11-100='11 to 100'
;
run;
proc freq data= yourdatasetname;
tables yourvariablename;
format yourvariablename mygroup. ;
run;
The text assosiated with the format can be pretty much what you want.
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 the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.