Windows 10, Version 9.4, no access to SAS/STATS thus cannot use "proc iml" Good day, The following code successfully multiplies each observation in work.beta2 by the corresponding column variable "fix" in work.alpha2. data work.alpha2;
infile datalines;
input fix @@;
datalines;
0 1 23 58 72 89 91 76
;
run;
data work.beta2;
infile datalines;
input al s zn zr;
datalines;
5 7 8 4
6 4 8 9
7 3 2 6
9 8 7 6
5 3 1 4
7 6 2 8
5 7 2 1
4 3 7 6
;
run;
data work.H_product;
merge work.alpha2 work.beta2;
H_al=al*fix;
H_s=s*fix;
H_zn=zn*fix;
H_zr=zr*fix;
drop al s zn zr fix;
run;
proc print data=work.alpha2; title 'alpha2'; run;
proc print data=work.beta2; title 'beta2'; run;
proc print data=work.H_product; title 'H_Product- Each value is product '; run; The output is correct and looks like this - but cleaner: H_Al H_S H_Zn H_zr 0 0 0 0 6 4 8 9 161 69 46 138 522 464 406 348 360 216 72 288 623 534 178 712 455 637 182 91 304 228 532 456 The problem is the real file work.beta2 has over 100 variables with 50,000 observations. Similarly, there are 50,000 values for "fix". I I tried to put the values of fix in a macro variable but received out of range type errors. I recall using index variables with SQL, but do not know if these are permitted within SAS. Any advice, hints, suggestions, or general feedback is greatly appreciated. Thank you, Jane
... View more