本人sas初学者,遇到一个难题,请求高手指点!问题是这样的,我想要导入txt,| 为分隔符的文件,文件里面的列的数量和名字不确定,为了方便对数据的处理,我打算把所有的列都设成相同的格式 字符型200;  如下,不知道为什么 循环总是有问题。
txt file 数据举例(第一行是header):
table1|table2|table3|table4|num
a|b|c|d|3
a|b|c|d|4
a|b|c|d|5
a|b|c|d|6
%let file=C:\Documents and Settings\Administrator\桌面\result_201105_201304.txt
data  aa;
INFILE "&file "
        MISSOVER
        DSD lrecl=32767 
        firstobs=1
        obs=1
        ;
 INPUT a : 美元符号32767. ;
run;
proc sql;
select max(count(a,'|'))+1 into:num
from aa; 
quit;
%macro group(n);
data out1;
set aa;
%do i=1 %to &n;
var&i=scan(a,&i,'|');
%end;
run;
%mend;
%group(&num);
--------------------------------------------------
以上是博客上学来的,把列名提取出来,后面是我有问题的code
--------------------------------------------------
* create 宏变量,每个宏变量对应一个header的name
%macro var(n);
%do i=1 %to &n;
select var&n from out1 
into: var&n;
%put var&n=var&n;
%end;
%mend;
%var(&num);
data        out1        ;                                                                        
infile        "&file"        delimiter        =        '|'        MISSOVER        DSD        lrecl=32767        firstobs=2        ;
do i= 1 to #
informat &&var&i  美元符号200.;;
end;
do i= 1 to #
format &&var&i  美元符号200.;;
end;
input
do i= 1 to #
 &&var&i  美元符号;
end;
---------------------------------------------------
非常感谢!