SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Luigim
Calcite | Level 5
Hi everybody,
I have a data set containing 35 categorical variable that I want to test with other 33 dichotomous variables using chi squred test. If I run
Proc freq data=mydata;
Table = c_: * d_: / chisq;
Run;
It works but i was struggling how to create a simple output data set with just three information: the two variables used in every test and the pchi.

Thanks everybody in advance
1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21

Use ODS OUTPUT to get the table :

 

ods listing select none;
proc freq data=sashelp.heart;
table (status sex) * (chol_status bp_status weight_status) / chisq;
ods output ChiSq=outChiSq;
run;
ods listing;

proc sql;
create table myChiSq as
select 
    scan(Table,2) as v1 length=32, 
    scan(Table,3) as v2 length=32, 
    df, 
    value, 
    prob
from outChiSq
where statistic="Chi-Square"
order by v1, v2;
select * from myChiSq;
quit;

Note : You need parentheses around the variable lists in the TABLES statement.

PG

View solution in original post

3 REPLIES 3
PGStats
Opal | Level 21

Use ODS OUTPUT to get the table :

 

ods listing select none;
proc freq data=sashelp.heart;
table (status sex) * (chol_status bp_status weight_status) / chisq;
ods output ChiSq=outChiSq;
run;
ods listing;

proc sql;
create table myChiSq as
select 
    scan(Table,2) as v1 length=32, 
    scan(Table,3) as v2 length=32, 
    df, 
    value, 
    prob
from outChiSq
where statistic="Chi-Square"
order by v1, v2;
select * from myChiSq;
quit;

Note : You need parentheses around the variable lists in the TABLES statement.

PG
Luigim
Calcite | Level 5

This is great! Thank you so much!

PGStats
Opal | Level 21

You are welcome. Please mark answer as accepted solution.

PG

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1437 views
  • 1 like
  • 2 in conversation