data adsl1;
set adsl_;
array ca(20) (2 3 4 5 6 7 9 12 13 14 15 16 17 18 19 20 21 22 22.1 39);
array vca(20) AGEGR4 SEX ETHNIC RACE COUNTRNM Region BLBMIGR1 BHBA1GR1 BLDLGR1 MIHIFL CRHIFL CABGHIFL
BHYPERFL BSUSFL BLLMFL BSTATFL BNSLLMFL BSMKSGR1 BSMKSGR2 GFRGR1;
length var $1000;
do i=1 to 20;
ord_g=ca(i);
var=vca(i);
output;
run;
*****************************************************************
AGEGR4 SEX ETHNIC RACE COUNTRNM Region BLBMIGR1 BHBA1GR1 BLDLGR1 MIHIFL CRHIFL CABGHIFL BHYPERFL BSUSFL BLLMFL BSTATFL BNSLLMFL BSMKSGR1 BSMKSGR2 GFRGR1这些都是数据集已有变量。
因为sas总是以数据集形式保存变量数据的,并不存在单独的变量(除了宏变量)。所以我就很难理解这个循环!我一直认为当do进行到i=20的时候ord_g=39;var=GFRGR1;(整列都是)那这样前面的循环就白做了!但是事实上sas跑出来跟我的想法不一样!他是存在循环的!但是我不理解!
比如说当i进行到10时,_n_=1到9的观测会不会被覆盖掉?
不知道我有没有表达清楚