全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2048 5
2010-12-01
读入这样的文本,第一行以“>”开始,读入为name,最后一行都以“//”结束,读入为sequence.
当这段文本总长度不超过32767时,hopewell提供的代码非常有效!
但当总长度超过约50000时,如何修改下面代码,使得第一行读入为name,文本第二行到“ORIGIN”读入为note,“ORIGIN”到“//”之间读入为sequence;
filename testdata 'd:\testdata.txt';
data raw;
    length name $10 sequence $10000;
    retain name sequence;
    infile testdata;
    input;
    if substr(_infile_,1,1)='>' then name=substr(_infile_,2);
    else if _infile_='//' then do;
        output;
        call missing(sequence);
    end;
    else sequence=cats(sequence,_infile_);
run;
附件列表

testdata.1.txt

大小:127.55 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

全部回复
2010-12-1 23:32:15
复制代码
二维码

扫码加我 拉你入群

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

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

2010-12-2 10:11:07
frackdeng 发表于 2010-12-1 23:32
复制代码
还是有点问题,结果是tmp与sequecce结果一样,均为“ORIGIN”之后的文本,而note值缺失了!
二维码

扫码加我 拉你入群

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

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

2010-12-2 14:00:53
我运行没问题啊,temp是个过程变量,可以drop掉。
你加个proc print 放后面,看看部分data是什么样的。
3# baojiwolong
二维码

扫码加我 拉你入群

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

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

2010-12-2 21:24:28
frackdeng 发表于 2010-12-2 14:00
我运行没问题啊,temp是个过程变量,可以drop掉。
你加个proc print 放后面,看看部分data是什么样的。
3# baojiwolong
谢谢,程序解决问题了,直接打开SAS数据集时确实看不到note!
不过proc print的时候note的值就出来!
再set raw后note后值就显示正常了,不知为何!
Anyway,thanks,frackdeng!
二维码

扫码加我 拉你入群

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

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

2010-12-2 23:15:43
5# baojiwolong
共同提高,正好我也需要这方面的知识
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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