Hi everyone, I hope that somebody would help me. I am working with SAS in Unix environment through a remote server, and in order to make my simulations faster, I have to run in parallel my program. For doing so, I have five parameters that change into 243 possible combinations, which are storage in a csv file (the one that the server reads in order to change those values in my code). What I am performing are two models in meta-analysis using PROC MIXED. My problem basically is that when I try to put all the output together, with the following code, I just recover the simulations corresponding to the last combinations of factors. libname r " "; ods listing close; ods noresults; options nonotes; /*Reading the parameters from the csv file*/ %let varw = %scan(&sysparm,1,':'); %let varv = %scan(&sysparm,2,':'); %let varr = %scan(&sysparm,3,':'); %let varu = %scan(&sysparm,4,':'); %let smd = %scan(&sysparm,5,':'); /*macro for generating the data and performing the four-level meta-analysis*/ %macro fourlevel; %let k=3; /*number of studies*/ %let c = 30; /*number of countries*/ %let oc=2; /*number of outcomes*/ %let dataset = 10; %do d=1 %to &dataset; /*number of simulated datasets for each combination*/ /* simulating sample level residuals (level-1)*/ data sample; do country = 1 to &c; do study = 1 to &k; do outcome = 1 to &oc; r = normal(0); output; end; end; end; /* simulating outcome level residuals (level-2)*/ data outcome; do country = 1 to &c; do study = 1 to &k; do outcome = 1 to &oc; u = normal(0); output; end; end; end; /*simulating random study-effects (level 3)*/ data study; do country = 1 to &c; do study = 1 to &k; v = normal(0); output; end; end; /*simulating random country-effects (level 4)*/ data country; do country = 1 to &c; w = normal(0); output; end; data all; merge country study; by country; data all; merge all outcome; by country study ; data all; merge all sample; by country study outcome; data all; set all; w = w*sqrt(&varw); v = v*sqrt(&varv); u = u*sqrt(&varu); r = r*sqrt(&varr); d = &smd + w + v + u + r; precision=1/↕ /*keep country study outcome d precision;*/ run; /*performing the meta-analysis*/ /*four level*/ proc mixed data= all ; class country study outcome; weight precision; model d = /solution; random intercept / sub = outcome (study*country); random intercept /sub = study(country); random intercept /sub = country; parms 1 1 1 1/hold = 4; ods output solutionF=fixed1 covparms=random1; run; %do out = 1 %to 1; data fixed&out; set fixed&out; model = &out; k = &k; d = &d; oc = &oc; varw=&varw; varv=&varv; varr=↕ varu=&varu; smd=&smd; proc append base=fixedall&out new=fixed&out FORCE NOWARN; quit; data random&out; set random&out; model = &out; k = &k; d = &d; oc = &oc; varw=&varw; varv=&varv; varr=↕ varu=&varu; smd=&smd; proc append base=randomall&out new=random&out; quit; %end; %end; %mend fourlevel; %fourlevel; quit; data r.fixedall1; set fixedall1; run; data r.randomall1; set randomall1; run; Thanks in advance for any help
... View more