%macro boot( B , data = x1 ) ; data x1 ; set samp( keep = weight height obs = 50 ) ; run ; data x2 ; set samp( keep = weight height obs = 100 firstobs = 51 ) ; run ; data boot&data ; keep b1 Sxy Sxx ; do i = 1 to &b ; x = 0 ; y = 0 ; xx = 0 ; yy = 0 ; xy = 0 ; do n = 1 to nobs ; k = ceil( ranuni( 0 ) * nobs ) ; set &data nobs = nobs point = k ; x = x + height ; y = y + weight ; xx = xx + height ** 2 ; yy = yy + weight ** 2 ; xy = xy + height * weight ; if n = 50 then do ; CFxy = x * y / n ; CFx = x ** 2 / n ; Sxy = xy - CFxy ; Sxx = xx - CFx ; b1 = Sxy / Sxx ; b1 = round( b1, .01 ) ; end ; end ; output ; end ; stop ; run ; %mend boot ;