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 ... ???
Nearly 200 sessions are now available on demand in the Innovate Hub.
Watch Now →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.