Hi, I was trying to create lag variables for all my variables in the data. To make it easy, assusme I only have two variables in the data: a and b. However the code below does not work. data t2; set t; do i=1 to 2; %let var=%scan(&vars.,i); &var._lag1 = lag1(&var.); end; run; The errow message was "ERROR: A character operand was found in the %EVAL function or %IF condition where a numeric operand is required. The condition was: i ERROR: Argument 2 to macro function %SCAN is not a number." but after I put it in macro function the code below works. Can anybody help me to understand the reason? %macro ts; data t2; set t; %do i=1 %to 2; %let var=%scan(&vars.,&i.); &var._lag1 = lag1(&var.); %end; run; %mend; %ts;
... View more