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;
---------------------------------------------------
非常感谢!



雷达卡




京公网安备 11010802022788号







