全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2578 3
2014-10-21
本人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;

---------------------------------------------------
非常感谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-10-22 05:56:32
%let file = C:\Documents and Settings\Administrator\桌面\result_201105_201304.txt
proc import datafile = "&file"
     out = outdata  /*you can change outdata to dataset name you want*/
     dbms = dlm
     replace;
     delimiter = '|';
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-22 06:00:20
还有个技巧,当run这段代码之后,不能成功运行,点击F4, SAS会自动把生成的data step的代码显示在你的工作窗口上,你可以自己调节各个variable的长度和类型,希望有帮助。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-23 13:37:04
sonypam 发表于 2014-10-22 06:00
还有个技巧,当run这段代码之后,不能成功运行,点击F4, SAS会自动把生成的data step的代码显示在你的工作窗 ...
太感谢了,谢谢你!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群