options ls=80; *mprint symbolgen; proc import datafile='lipids.csv' out=lipids; run; %macro mkvars(var); retain &var.1 - &var.10; array &var._ &var.1 - &var.10; if first.id then do i=1 to 10;&var._{i} = .;end; &var._{visit} = &var; %mend mkvars; proc sort data=lipids; by id; run; data use; set lipids; by id; %mkvars(htav); %mkvars(wtav); %mkvars(waistmin); %mkvars(maxbloav); %mkvars(qi); %mkvars(pfbia); %mkvars(tc); %mkvars(tg); %mkvars(hdl); %mkvars(ldl); %mkvars(physact); if last.id then output; drop htav wtav waistmin maxbloav qi pfbia tc tg hdl ldl physact; run; proc summary data=use; var _all_; output out=chk nmiss=; run; proc transpose data=chk out=chkt; run; data _null_; set chkt end=last; length rmvars $ 1000; retain rmvars ' '; if _name_ = '_FREQ_' then return; if col1 > 2000 then rmvars = catx(' ',rmvars,_name_); if last then do; put rmvars=; call symput('rmvars',rmvars); end; run; data use; set use; drop &rmvars; run; proc corr data=use; var hdl:; run; proc corr data=use; var waistmin:; run;