全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1100 3
2013-03-15
刚开始学SAS,今天看到如题部分(The little sas),举的例子是
freeway 408 3684 3459
surface Martin Luther King Jr. Blvd. 1590 1234
surface Broadway 1259 1290
surface Rodeo Dr. 1890 2067
freeway 608 4583 3860
freeway 808 2386 2518
surface Lake Shore Dr. 1590 1234
surface Pennsylvania Ave. 1259 1290


从中读取freeway的数据,可以用下面程序实现。
DATA freeways;
INFILE ’c:\MyRawData\Traffic.dat’;
INPUT Type $ @;
IF Type = ’surface’ THEN DELETE;
INPUT Name $ AMTraffic PMTraffic;
RUN;
PROC PRINT DATA = freeways;
TITLE ’Traffic for Freeways’;
RUN;


我就想到如果要读取suface的数据怎么办?但是路名字段长度/空格都不规则,怎么样顺利读取Name呢,请大侠指点。
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-15 05:10:34
想到一个笨办法,只对你这种特殊情况有用,同求其他方法.
data aaa;
        infile 'c:\MyRawData\Traffic.dat';
        input type $ remain & $100.;
        length name $ 30.;
                if type='freeway' then
                        name=scan(remain,1);
                else name=compress(remain,'1234567890');
        amtraffic=scan(remain,-2);
        pmtraffic=scan(remain,-1);
        drop remain;
run;
proc print;run;
二维码

扫码加我 拉你入群

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

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

2013-3-15 11:54:09
matchlessboy 发表于 2013-3-15 05:10
想到一个笨办法,只对你这种特殊情况有用,同求其他方法.
data aaa;
        infile 'c:\MyRawData\Traff ...
Another 笨办法.

data like_sas ;
   length name $28 add1 add2 $8;
   input dummy $ @;
   if dummy='surface' then do;
         add2=scan(_infile_,-1,' ');
         add1=scan(_infile_,-2,' ');
         name=substr(_infile_,length(dummy)+1,
          length(_infile_)-length(dummy)-length(add1)-length(add2)-2);
         output;
   end;
   keep name add:;
cards ;
freeway 408 3684 3459
surface Martin Luther King Jr. Blvd. 1590 1234
surface Broadway 1259 1290
surface Rodeo Dr. 1890 2067
freeway 608 4583 3860
freeway 808 2386 2518
surface Lake Shore Dr. 1590 1234
surface Pennsylvania Ave. 1259 1290
;
proc print;run ;
二维码

扫码加我 拉你入群

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

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

2013-3-16 06:30:44
非常感谢,继续求其他方法
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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