作者alias (希望)
看板Statistics
标题Re: [问题] 请问sas处理带符号资料该如何转换成数字
时间Thu Jul 27 09:30:41 2006
※ 引述《u504053 (Rebecca)》之铭言:
: 请问sas处理带符号资料该如何转换成数字
: 谢谢
: 带符号资料说明 :
: 储存: 以该变数之实际长度储存,在储存值末位,来区别其职之正负
: 读取: 若该变数实际长度为15bytes,以COBOL读取上述资料时,格式为PIC S9 (15). ;
: 以SAS读取时,格式为ZD15.
: 下表为储存值末位正负值对照表
: 储存末位值 A B C D E F G H I { J K L M N O P Q R }
: 对照值 1 2 3 4 5 6 7 8 9 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -0
: 如储存值为00000000000428L,读取时其值为 -4283
我能提供的方法就是土法炼钢,一步一步将资料弄成是我要的格式
/*先读进资料*/
DATA aa;
INPUT a1 1-14 a2 $15;
CARDS;
00000000001231M
00000000003456O
00000000000428L
;
RUN;
/*然後在弄成自己要的格式*/
DATA bb; SET aa;
IF a2='A' | a2='J' THEN a3=1; IF a2='B' | a2='K' THEN a3=2; IF a2='C' | a2='L' THEN a3=3;
IF a2='D' | a2='M' THEN a3=4; IF a2='E' | a2='N' THEN a3=5; IF a2='F' | a2='O' THEN a3=6;
IF a2='G' | a2='P' THEN a3=7; IF a2='H' | a2='Q' THEN a3=8; IF a2='I' | a2='R' THEN a3=9;
IF a2='(' | a2=')' THEN a3=0;
IF a2='A' | a2='B' | a2='C' | a2='D' | a2='E' | a2='F' | a2='G' | a2='H' | a2='I' | a2='('
THEN a4=1;
ELSE a4=-1;
num=compress(a1||a3);
goal=num*a4;
RUN;
以上 如有误请指正
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 211.76.175.139