Hello All, I need to alter the jackboot macro (which can be found here: https://support.sas.com/kb/24/982.html). I have a long dataset with 1-2 rows per participant (i.e., 167 participants providing 2 rows of data and 3 participants providing 1 row of data for a total of 337 rows). Instead of dropping one row at a time as would be normal for jackknifing, I need to drop all 1-2 rows associated with each participant at a time (i.e., 167 datasets having 335 rows and 3 datasets having 336 rows). I believe only the %jackby or %jackslow macros (below) of the jackboot macro program need to be altered. Thoughts on how to do this? %macro jackby( /* Jackknife resampling */ data=&_jackdat, print=0 ); data JACKDATA/view=JACKDATA; do _sample_=1 to &nobs; do _i=1 to &nobs; if _i^=_sample_ then do; _obs_=_i; set &data point=_i; output; end; end; end; stop; run; %if &syserr>4 %then %goto exit; %if &print %then %do; proc print data=JACKDATA; id _sample_ _obs_; run; %end; %exit:; %mend jackby; %macro jackslow( /* Uniform jackknife sampling and analysis without BY processing */ data=&_jackdat ); %put %cmpres(WARNING: Jackknife analysis will be slow because the ANALYZE macro did not use the BYSTMT macro.); data JACKDIST; set JACKACT; _sample_=0; delete; run; options nonotes; %local sample; %do sample=1 %to &nobs; %put Jackknife sample &sample; data _TMPD_; drop _i; do _i=1 to &nobs; set &data; if _i^=&sample then output; end; stop; run; %if &syserr>4 %then %goto exit; %analyze(data=_TMPD_,out=_TMPS_); %if &syserr>4 %then %goto exit; data _TMPS_; set _TMPS_; _sample_=&sample; run; %if &syserr>4 %then %goto exit; proc append data=_TMPS_ base=JACKDIST; run; %if &syserr>4 %then %goto exit; %end; %exit:; options notes; %mend jackslow;
... View more