Re: [問題] 請問sas處理帶符號資料該如何轉換成數字

看板Statistics作者 (希望)時間18年前 (2006/07/27 09:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #14o1QGMW (Statistics)
文章代碼(AID): #14o1QGMW (Statistics)