data partial;

input y x2 x3;

datalines;

3 3 5

1 1 4

8 5 6

3 2 4

5 4 6

;

run;

proc corr data=partial;

var y x2;

var x2 x3;

var y x3;

partial  x2;

run;

/* r12.3=(r12 - r13*r23)/((1-r13^2)^.5*(1-r23^2)^.5)  */

/*long way*/

proc reg data=partial;

model y=x2;

output out=results1 residual=resd1;

run;

proc reg data=results1;

model x3=x2;

output out=results2 residual=resd2;

run;

proc reg data=results2;

model resd1=resd2;

run;