SAS中文论坛
标题:
按照指定字符拆分
[打印本页]
作者:
shiyiming
时间:
2011-9-8 11:18
标题:
按照指定字符拆分
举例如下:
[code:hpyezk89]data want;
input ch $20.;
cards;
3*2.5*3
1*1*0.7
1.5*1.5*1.5
1.5*1*1
1.5*1*0.5
1.5
1.3*0.7*0.5
1.5*1*0.8
0.7*0.5
;
run;
/* 想以'*' 为分割标记,分为三个变量,x1,x2,x3,*/
/* 若有0.7*0.5 则表示为x1,x2 */
/* 若有1.5 则表示为x1; */[/code:hpyezk89]
作者:
shiyiming
时间:
2011-9-8 12:11
标题:
Re: 按照指定字符拆分
有一个语句可以参考,但有点欠缺。
[code:1ddqlfnj]b1=input(substr(_col22,1,index(a,'*')-1),8.); [/code:1ddqlfnj]
但问题是在“*”分割的字符不是等长度的,所以以上语句没法使用,还望大侠回复!
作者:
shiyiming
时间:
2011-9-8 18:59
标题:
Re: 按照指定字符拆分
用scan函数
x1=scan(ch,1,"*");
x2=scan(ch,2,"*");
...
作者:
shiyiming
时间:
2011-9-11 10:43
标题:
Re: 按照指定字符拆分
[code:2vh3hxzo]proc sql noprint;
select max(countc(ch,'*'))+1 into :n_max from want;
quit;
data result;
set want;
n=countc(ch,'*')+1;
array x{&n_max.} $32;
do i=1 to n;
x(i)=scan(ch,i,'*');
end;
drop n i;
run;[/code:2vh3hxzo]
作者:
shiyiming
时间:
2011-9-30 13:44
标题:
Re: 按照指定字符拆分
为什么不一开始在读取观测的时候处理了?
[code:8vauqsu4]
data want;
infile cards dlm='*' truncover;
input x1 x2 x3 ;
cards;
3*2.5*3
1*1*0.7
1.5*1.5*1.5
1.5*1*1
1.5*1*0.5
1.5
1.3*0.7*0.5
1.5*1*0.8
0.7*0.5
;
run;[/code:8vauqsu4]
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2