I'm running a large number of logistic regressions and would like to specify particular output statistics from the proc logistic ods output dataset.
For example, using the SAS Remission dataset from here:
data Remission;
input remiss cell smear infil li blast temp;
label remiss='Complete Remission';
datalines;
1 .8 .83 .66 1.9 1.1 .996
1 .9 .36 .32 1.4 .74 .992
0 .8 .88 .7 .8 .176 .982
0 1 .87 .87 .7 1.053 .986
1 .9 .75 .68 1.3 .519 .98
0 1 .65 .65 .6 .519 .982
1 .95 .97 .92 1 1.23 .992
0 .95 .87 .83 1.9 1.354 1.02
0 1 .45 .45 .8 .322 .999
0 .95 .36 .34 .5 0 1.038
0 .85 .39 .33 .7 .279 .988
0 .7 .76 .53 1.2 .146 .982
0 .8 .46 .37 .4 .38 1.006
0 .2 .39 .08 .8 .114 .99
0 1 .9 .9 1.1 1.037 .99
1 1 .84 .84 1.9 2.064 1.02
0 .65 .42 .27 .5 .114 1.014
0 1 .75 .75 1 1.322 1.004
0 .5 .44 .22 .6 .114 .99
1 1 .63 .63 1.1 1.072 .986
0 1 .33 .33 .4 .176 1.01
0 .9 .93 .84 .6 1.591 1.02
1 1 .58 .58 1 .531 1.002
0 .95 .32 .3 1.6 .886 .988
1 1 .6 .6 1.7 .964 .99
1 1 .69 .69 .9 .398 .986
0 1 .73 .73 .7 .398 .986
;
I'd like to run the following ods output, but SAS doesn't like me combining two conditions:
ods trace on;
proc logistic data=Remission;
model remiss(event='1') = cell smear infil li blast temp;
ods output ParameterEstimates = logit_model (where=(Variable=temp)(keep=Variable Estimate ProbChiSq));
run;
Is there a way to make this work? I've tried a few variations with & without parentheses but no success.
ods output ParameterEstimates = logit_model (where=(Variable=temp) keep=Variable Estimate ProbChiSq);
KEEP= does not get its own set of parenthesis, it is enclosed in the parentheses that all data set options are enclosed in
on the other hand
WHERE= is always followed by a set of parentheses, and also is enclosed in the parentheses that all data set options are enclosed in
Your code still fails where Variable=temp because there is no variable named temp in the data set ... you don't want to compare variable to a different variable named temp (which does not exist), you want to compare variable to a specific value in the column variable ... so homework assignment ... what is the proper SAS syntax if you want to test if the value of variable is equal to a specific value ... ???
ods output ParameterEstimates = logit_model (where=(Variable=temp) keep=Variable Estimate ProbChiSq);
KEEP= does not get its own set of parenthesis, it is enclosed in the parentheses that all data set options are enclosed in
on the other hand
WHERE= is always followed by a set of parentheses, and also is enclosed in the parentheses that all data set options are enclosed in
Your code still fails where Variable=temp because there is no variable named temp in the data set ... you don't want to compare variable to a different variable named temp (which does not exist), you want to compare variable to a specific value in the column variable ... so homework assignment ... what is the proper SAS syntax if you want to test if the value of variable is equal to a specific value ... ???
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.