全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3661 2
2016-02-26
请大神们帮我看看哪里出了问题,跑着跑着出问题了。。。。悬赏10个币 谢谢!


DATA CLAIM_V1;
SET CLAIMS ;
SUBSCRIPTION_NUMBER='98076'||SUBSTR(Subscriber_number,5);
RUN ;

Data RATE_with_LOSS;
length LOSSPAYMENT  3;
If _N_ = 1 Then  Do;
if 0 then ;
Declare Hash MyLkup(HashExp:8,Dataset:'CLAIM_V1');
MyLkup.DefineKey('SUBSCRIPTION_NUMBER','VEHICLE_NUMBER','EFFECTIVE_DATE');
MyLkup.DefineData('LOSSPAYMENT');
MyLkup.DefineDone();
End;
call missing(LOSSPAYMENT);
Set RATE_E ;
Rc = MyLkup.Find();
run;





--------------------

LOG


2361
2362  Data RATE_with_LOSS;
2363  length LOSSPAYMENT  3;
2364  If _N_ = 1 Then  Do;
2365  if 0 then ;
2366  Declare Hash MyLkup(HashExp:8,Dataset:'CLAIM_V1');
2367  MyLkup.DefineKey('SUBSCRIPTION_NUMBER','VEHICLE_NUMBER','EFFECTIVE_DATE');
2368  MyLkup.DefineData('LOSSPAYMENT');
2369  MyLkup.DefineDone();
2370  End;
2371  call missing(LOSSPAYMENT);
2372  Set RATE_E ;
2373  Rc = MyLkup.Find();
2374  run;

ERROR: Type mismatch for data variable LOSSPAYMENT at line 2369 column 1.
ERROR: Hash data set load failed at line 2369 column 1.
ERROR: DATA STEP Component Object failure.  Aborted during the EXECUTION phase.
NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.RATE_WITH_LOSS may be incomplete.  When this step was stopped there
         were 0 observations and 7 variables.
WARNING: Data set WORK.RATE_WITH_LOSS was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-2-26 18:11:25
程序没问题的,是数据格式导致程序无法运行。我按字段在数据集里面加了 一些数据,运行正常。
程序如下:
data CLAIMS;
length LOSSPAYMENT 3;
        input SUBSCRIPTION_NUMBER $6. VEHICLE_NUMBER EFFECTIVE_DATE LOSSPAYMENT best3.;
        cards;
        122334 4234223 342324 342
        343434 2322322 343454 345
        ;
run;

data rate_e;
length LOSSPAYMENT 3;
        input SUBSCRIPTION_NUMBER $6. VEHICLE_NUMBER EFFECTIVE_DATE LOSSPAYMENT best3. ;
        cards;
        122334 4234223 342324 344
        343434 2322322 343454 567
        ;
        run;

DATA CLAIM_V1;
SET CLAIMS ;
SUBSCRIPTION_NUMBER='98076'||SUBSTR(Subscriber_number,5);
RUN ;

Data RATE_with_LOSS;
length LOSSPAYMENT  3;
If _N_ = 1 Then  Do;
if 0 then ;
Declare Hash MyLkup(HashExp:8,Dataset:'CLAIM_V1');
MyLkup.DefineKey('SUBSCRIPTION_NUMBER','VEHICLE_NUMBER','EFFECTIVE_DATE');
MyLkup.DefineData('LOSSPAYMENT');
MyLkup.DefineDone();
End;
call missing(LOSSPAYMENT);
Set RATE_E ;
Rc = MyLkup.Find();
run;

-------------------------------------------------------------------------------------------
sas日志信息:
362
363   Data RATE_with_LOSS;
364   length LOSSPAYMENT  3;
365   If _N_ = 1 Then  Do;
366   if 0 then ;
367   Declare Hash MyLkup(HashExp:8,Dataset:'CLAIM_V1');
368   MyLkup.DefineKey('SUBSCRIPTION_NUMBER','VEHICLE_NUMBER','EFFECTIVE_DATE');
369   MyLkup.DefineData('LOSSPAYMENT');
370   MyLkup.DefineDone();
371   End;
372   call missing(LOSSPAYMENT);
373   Set RATE_E ;
374   Rc = MyLkup.Find();
375   run;

NOTE: 从数据集 WORK.CLAIM_V1. 读取了 2 个观测
NOTE: 从数据集 WORK.RATE_E. 读取了 2 个观测
NOTE: 数据集 WORK.RATE_WITH_LOSS 有 2 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间          0.02 秒
      CPU 时间          0.01 秒

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-2-28 04:56:50
非常感谢!!! 两个TABLE的LOSSPAYMENT长度不同,所以导致的问题。现在OK了!!

多谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群