我有一个数据集是这样;如何使用算术运算符与SAS宏变量
DATA work.faminc;
INPUT famid faminc1-faminc12 ;
CARDS;
1 3281 3413 3114 2500 2700 3500 3114 3319 3514 1282 2434 2818
2 4042 3084 3108 3150 3800 3100 1531 2914 3819 4124 4274 4471
3 6015 6123 6113 6100 6100 6200 6186 6132 3123 4231 6039 6215
;
RUN;
我可以创建一个变量,并做一些东西与它类似,
%let N=12;
DATA faminc1b;
SET faminc ;
ARRAY Afaminc(12) faminc1-faminc12 ;
ARRAY Ataxinc(&N) taxinc1-taxinc&N ;
DO month = 1 TO &N;
Ataxinc(month) = Afaminc(month) * .10 ;
END;
RUN;
但我也想分裂每个家庭的收入面前的一个。
的结果应该是像faminc1/faminc2 - faminc2/faminc3 - faminc3/faminc4 ...
所以,主要的问题是如何使用算术运算(+, - ,*,/)运营商的 “N”我创建的变量。
当我试图简单地做到这一点,它不工作;
%let N=12;
DATA faminc1b;
SET faminc ;
ARRAY Afaminc(12) faminc1-faminc12 ;
ARRAY Afamdiv(&N) famdiv1-famdiv&N ;
DO month = 1 TO &N+1;
Afamdiv(month) = faminc&N/faminc&N+1 ;
END;
RUN;
感谢您的帮助。
这正是我所期待的。感谢您的帮助 – kutayatesoglu