全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1742 9
2013-01-25
我们知道在用DATA步infile 外部数据的时候,可以用@“text_string”来定位所读入的数据,如:

Data temp;
        input @ "XYZ" value $;
        Datalines;
        ABCXYZETPF
        EIFTXYZOPBC
        ;
Run;
最终得到的数据将是:
Value
ETPF
OPBC

但我想让它从“XYZ”开始读,到“P” 终止,得到:
Value
ET
O

请问要如何修改“input @ "XYZ" value $;”, 可以用@开头,能有什么表示结尾的不? 谢谢

二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-25 20:59:37
Data temp;
        infile cards dlm='P';
        input @ "XYZ" value $;
        Datalines;
ABCXYZETPF
EIFTXYZOPBC
        ;
Run;
二维码

扫码加我 拉你入群

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

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

2013-1-25 23:04:30
pobel 发表于 2013-1-25 20:59
Data temp;
        infile cards dlm='P';
        input @ "XYZ" value $;
非常感谢,我试试先
二维码

扫码加我 拉你入群

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

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

2013-1-26 23:53:27
pobel 发表于 2013-1-25 20:59
Data temp;
        infile cards dlm='P';
        input @ "XYZ" value $;
其实是这样的,我要input两个变量,每个变量结尾的字符可能不一样, 如value1以P结尾,value2以B结尾。如下:

Data temp;
        input @ "XYZ" value1  $
                @ "XYZ" value2 $;
        Datalines;
ABCXYZETPFB
EIFTXYZOPBC
        ;
Run;
得到的结果:
value1 value2
ET      ETPF
ZO      ZOP

所以用dlm="“重新定义分割符是不行的,因为这样定义的事对每一个变量都一样的。。有别的方法不? 感激涕零!!
二维码

扫码加我 拉你入群

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

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

2013-1-27 08:24:43
edwardzxf 发表于 2013-1-26 23:53
其实是这样的,我要input两个变量,每个变量结尾的字符可能不一样, 如value1以P结尾,value2以B结尾。如 ...
楼主可以试试下面这段。不过楼主想要的结果第一行没有“Z",第二行为什么有”Z"?
Data temp;
        input;
        value1=scan(substr(_infile_,index(_infile_,"XYZ")+3),1,"P");
        value2=scan(substr(_infile_,index(_infile_,"XYZ")+3),1,"B");
        Datalines;
ABCXYZETPFB
EIFTXYZOPBC
;
Run;
二维码

扫码加我 拉你入群

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

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

2013-1-27 14:06:21
pobel 发表于 2013-1-27 08:24
楼主可以试试下面这段。不过楼主想要的结果第一行没有“Z",第二行为什么有”Z"?
Data temp;
         ...
感谢你的提醒,现在终于解决了,我现在改成如下:
Data temp;
        input @ "XYZ" value1_  $        /*有必要可以指定字符长度,尽量大些*/
                @ "XYZ" value2_ $;
        Datalines;
ABCXYZETPFB
EIFTXYZOPBC
        ;
value1=scan(value1_,1,"P");
value2=scan(value2_,1,"B");
keep value1 value2;

Run;
得到的结果:
value1 value2
ET      ETPF
O       OP

感谢大家的参与,集众人之智,解棘手之题。。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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