楼主: shoula0119
3374 2

关于HASH [推广有奖]

  • 0关注
  • 26粉丝

硕士生

74%

还不是VIP/贵宾

-

威望
0
论坛币
19758 个
通用积分
16.9850
学术水平
7 点
热心指数
19 点
信用等级
6 点
经验
2918 点
帖子
168
精华
0
在线时间
168 小时
注册时间
2007-7-15
最后登录
2024-4-8

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请大神们帮我看看哪里出了问题,跑着跑着出问题了。。。。悬赏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
二维码

扫码加我 拉你入群

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

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

关键词:HASH Has Subscription observations observation

沙发
山久丰 发表于 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 秒

已有 1 人评分论坛币 收起 理由
shoula0119 + 5 分析的有道理

总评分: 论坛币 + 5   查看全部评分

使用道具

藤椅
shoula0119 发表于 2016-2-28 04:56:50 |只看作者 |坛友微信交流群
非常感谢!!! 两个TABLE的LOSSPAYMENT长度不同,所以导致的问题。现在OK了!!

多谢

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 15:07