zbzb1982
数据是:
ab|+|dd|+|cc
ab|+|dd|+|cc
ab|+||+|cc
|+|aa|+|
分隔符是:|+|
我想到的做法是:
filename data1 "D:\aa.txt";
data data1;
infile data1 DLM='|+|' ;
input q1 $ q2 $ q3 $;
run;
但不知道如何处理缺失情况,请大家帮帮忙,谢谢了。
(另外想到可以直接先做字符串替换,
把|+|替换成空格,但觉得不好,
想问问各位有没有更好的方法)
abel
查看帮助中关于data步中缺失值处理的方式吧;有专门的选项设置,是跳过还是如何等。
onzeroad
data mydata(drop=s );
retain re;
infile data1 ;
input s $ : 1-20;
x=prxchange("s/(\w*)\|\+\|(\w*)\|\+\|(\w*)/$1/i",-1,s);
y=prxchange("s/(\w*)\|\+\|(\w*)\|\+\|(\w*)/$2/i",-1,s);
z=prxchange("s/(\w*)\|\+\|(\w*)\|\+\|(\w*)/$3/i",-1,s);
;
onzeroad
data mydata;
infile data1 dsd dlm='|+|' missover;
input x $ t1 t2 y$ t3 t4 z$;
drop t1-t4;
run;
zbzb1982
谢谢各位,后来找到也找到一种方法,
先用+做为分隔符,然后把|用compress函数压缩掉就行。