原来scan还能这样用,scan里的2是什么意思啊?有的company_description直接就是这样的:CCC INC(15-Apr-2015),这种情况下coupon是0,这样的就会有问题啊。作者: shiyiming 时间: 2011-9-20 14:20 标题: Re: 如果从一字符串中提取数字和日期? [code:38jfoo1a]data test;
str='SPAIN, KINGDOM OF GOVERNMENT 5.75 30-JUL-2032';output;
str='ASIF III JERSEY LTD 5.75 26-SEP-2005';output;
str='A American Airlines Inc (9.9% 15-Jan-2010)';output;
str='B Amr Corp (4.25% 23-Sep-2023)';output;
str='CCC INC(15-Apr-2015)';output;
run;
data test;
set test;
put '***' str '***';
str=translate(str,' ','(',' ','%',' ',')');
Maturity=input(scan(str,-1,' '),date11.);
if anyalpha(scan(str,-2,' '))=0 then do;
Coupon=input(scan(str,-2,' '),best.);
call scan(str,-2,p,l,' ');
end;
else call scan(str,-1,p,l,' ');
Company=substr(str,1,p-1);
put company= /coupon= /maturity= date9./;
run;[/code:38jfoo1a]作者: shiyiming 时间: 2011-9-20 16:59 标题: Re: 如果从一字符串中提取数字和日期? 哭,这个数据太不clean了。
company_description里面还有类似这样的“ASIF III JERSEY LTD 5.75 26-SEP-2005”“SPAIN, KINGDOM OF GOVERNMENT 5.75 30-JUL-2032”,用hope大侠的就没法读出来,应该是coupon=5.75 maturity=30JUL2032
另外,如何从一大串字符中找到我要的字符
比如:
company market
A EUR I.G. CORP BOND (FIXED RATE)
B BE DOM GOVT BOND (FIXED RATE)
C USD PRIV. PLACEMT CORP BOND (FLOATING RA
D USD N.I.G. A.B.S. (FIXED RATE)
从上面找到GOVT的和CORP的,如下:
company bondtype
A CORP
B GOVT
C CORP
D Others