%macro int2way(varlist2, vblpre=int, mvblname=iv); /************************** ** makes 2-way interactions of all variables in varlist2 (a list of non-time-varying covariates) and gives them labels; ** to be used with write2w; ** for time-varying covariates, use int2wp; ** 5-1-95; ***************************/ %global numvar2 _&mvblname.list_ ; %let numvar2=%numargs(&varlist2); %do iii=1 %to &numvar2; %let v&iii=%scan(&varlist2, &iii, %str( )); %let vname&iii = "&&v&iii"; %end; %do iii=2 %to &numvar2; %do jjj=1 %to %eval(&iii-1); &vblpre&iii._&jjj=&&v&iii*&&v&jjj; label &vblpre&iii._&jjj="&&v&iii * &&v&jjj" ; %let _&mvblname.list_ = &&_&mvblname.list_ &vblpre&iii._&jjj; %end; %end; %mend int2way;