This piece of code will not run correctly if there is more than one thing in each list.
%macro loop(list1, list2);
%let n=%sysfunc(countw(&list1));
%do i=1 %to &n;
%let O_list1 = %scan(&list1, &i, '');
%let O_list2 = %scan(&list2, &i, '');
data taxes;
food=3*&O_List1;
materials = 4*&O_List2
%end;
%mend;
%loop(1, 4);
/* %loop(1 3, 4 6) */
Here the output is 3 and 16. If I make the loop as it is in the commented section the code doesn't run and I can't seem to figure out why. Thanks!

run;statement to end your DATA step. - Quentin