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 ... ???
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
What’s the difference between SAS Enterprise Guide and SAS Studio? How are they similar? Just ask SAS’ Danny Modlin.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.