SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 5260|回复: 10
打印 上一主题 下一主题

大家能不能帮看看宏程序问题出在哪里?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-4-10 13:19:29 | 只看该作者

大家能不能帮看看宏程序问题出在哪里?

代码如下,但是好像sh180parame文件中的eventzqdm ,eventdate没有被传到
宏程序calcu中来,不知问题在哪里?
%macro calcu(eventzqdm,eventdate);
data test1;
set test;
if zqdm ^=&eventzqdm&i then delete; /*判断eventzqdm并删除无关数据*/
obs=_n_;
run;

proc sql noprint;
select obs into:num from test1
where tradedate=&eventdate&i; /*判断eventdate*/
quit;

data betafirm;
set test1;
where %eval(&num-10)<=obs<=%eval(&num+10);
run;

data index1;
set index;
obs=_n_;
run;

proc sql noprint;
select obs into:num from index1
where tradedate=&eventdate&i;
quit;

data beta_mkt;
set index1;
where %eval(&num-10)<=obs<=%eval(&num+10);
run;

data betaboth;
merge betafirm beta_mkt;
run;

proc reg noprint data=betaboth outest=Coefout;
model ret=indexret;
quit;

data _null_;
set coefout;
call symput('nextalpha',intercept);
call symput('nextbeta',indexret);
run;

data eventfirm;
set test1;
where %eval(&num-30)<=obs<=%eval(&num-11);
run;

data event_mkt;
set index1;
where %eval(&num-30)<=obs<=%eval(&num-11);
run;

data Car_calc;
merge eventfirm event_mkt;
by tradedate;
if _N_=1 then Car=ret-(&nextalpha + &nextbeta*indexret);
else car =ret-(&nextalpha + &nextbeta*indexret)+holdcar;
holdcar=car;
retain holdcar;
alpha=&nextalpha;
beta=&nextbeta;
run;

proc append base= Cars data=Car_calc(drop=holdcar);
run;
%mend calcu;


%macro main;
%global num nextalpha nextbeta betanobs;
data _null_;
set sh180parame end=last;
call symput (('eventzqdm'||compress(_n_)),zqdm);
call symput(('eventdate'||compress(_n_)),ltdate);
if last then call symput('num',_n_);
run;
%do i=1 %to #
%calcu(&&eventzqdm&i,&&eventdate&i);
%end;
%mend main;

%main;

数据附件发不了:(,参见  
<!-- m --><a class="postlink" href="http://sasor.feoh.net/modules.php?name=Forums&amp;file=viewtopic&amp;t=3814&amp;sid=75aeded195dc90a965a9e5aec9e2d62a">http://sasor.feoh.net/modules.php?name= ... aec9e2d62a</a><!-- m -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-4-10 17:47:46 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

初步看了并且运行了一下,没有问题啊,eventzqdm和eventdate能够被顺利的传递。一部分log如下:
[quote:1ao9n0sn]MLOGIC(MAIN):  %DO loop beginning; index variable I; start value is 1; stop value is 2; by value
      is 1.
MLOGIC(CALCU):  Beginning execution.
MLOGIC(CALCU):  Parameter EVENTZQDM has value 600000
MLOGIC(CALCU):  Parameter EVENTDATE has value 20070514
MPRINT(CALCU):   data test1;
MPRINT(CALCU):   set test;
ERROR: File WORK.TEST.DATA does not exist.
MPRINT(CALCU):   if zqdm ^=6000001 then delete;
MPRINT(CALCU):   obs=_n_;
MPRINT(CALCU):   run;

NOTE: The SAS System stopped processing this step because of errors.
WARNING: The data set WORK.TEST1 may be incomplete.  When this step was stopped there were 0
         observations and 2 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds


MPRINT(CALCU):   proc sql noprint;
MPRINT(CALCU):   select obs into:num from test1 where tradedate=200705141;
ERROR: The following columns were not found in the contributing tables: tradedate.
MPRINT(CALCU):   quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds[/quote:1ao9n0sn]
数据量小的话,就把数据程序贴上来嘛,像这样:
[code:1ao9n0sn]data sh180parame;
infile datalines;
input zqdm $ ltdate $;
datalines;
600000 20070514
600001 20070430
;
run;[/code:1ao9n0sn]
还缺test数据。
我可以帮你debug一下。看一眼已经发现不少问题:
1、%macro calcu(eventzqdm,eventdate);/
最后干嘛加个“/”?
2、proc append base= Cars data=Car_calc(drop=holdcar);
怎么没有“run;”啊?

你得尽量把干净的程序放上来,还有这样的错误真实不应该啊。
如果有可能程序再缩短些,这样大家就会愿意帮你debug了。如果需要别人更好的帮助,最好把你的log也贴上来,log对于我们定位问题才是更有用的。
还有个建议,这样的lookup技术推荐使用hash object来做,执行又快,程序又简单。本论坛有不少例子的。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-4-10 20:24:06 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

是传递错误吧。
[quote:1volt2ap]
%macro calcu(eventzqdm,eventdate);/
data test1;
set test;
if zqdm ^=&amp;eventzqdm&amp;i then delete; /*判断eventzqdm并删除无关数据*/
obs=_n_;
run;
[/quote:1volt2ap]
看[quote:1volt2ap]&amp;eventzqdm&amp;i [/quote:1volt2ap]在第一循环中&amp;eventzqdm solve 为600000,同时&amp;i solve 为1,连起来不就是6000001吗。显然在test中没有这样的值啊。

附:test 有1068个observations,如下:
[code:1volt2ap]
data test;
input zqdm $6&#46; tradedate $  ret 21-32;
cards;
600000        20060104        &#46;
600000        20060105        1&#46;6774193548
600000        20060106        2&#46;9187817259
600000        20060109        -1&#46;233045623
600000        20060110        0&#46;2496878901
600000        20060111        0&#46;2490660025
600000        20060112        0&#46;6211180124
600000        20060113        -2&#46;716049383
600000        20060116        -3&#46;426395939
600000        20060117        2&#46;3653088042
600000        20060118        6&#46;2901155327
600000        20060119        1&#46;690821256
600000        20060120        -0&#46;237529691
600000        20060123        -1&#46;071428571
600000        20060124        -0&#46;601684717
600000        20060125        3&#46;1476997579
600000        20060206        2&#46;4647887324
600000        20060207        -2&#46;520045819
600000        20060208        0&#46;705052879
600000        20060209        -2&#46;68378063
600000        20060210        0&#46;3597122302
600000        20060213        -0&#46;119474313
600000        20060214        0&#46;7177033493
600000        20060215        0
600000        20060216        1&#46;4251781473
600000        20060217        2&#46;5761124122
600000        20060220        1&#46;0273972603
600000        20060221        1&#46;6949152542
600000        20060222        -0&#46;666666667
600000        20060223        1&#46;4541387025
600000        20060224        1&#46;6538037486
600000        20060227        0
600000        20060228        0
600000        20060301        0
600000        20060302        0
600000        20060303        0
600000        20060306        0
600000        20060307        0
600000        20060308        0
600000        20060309        -9&#46;761388286
600000        20060310        -1&#46;442307692
600000        20060313        1&#46;4634146341
600000        20060314        -3&#46;365384615
600000        20060315        1&#46;1194029851
600000        20060316        0&#46;8610086101
600000        20060317        -0&#46;731707317
600000        20060320        0&#46;85995086
600000        20060321        0
600000        20060322        0
600000        20060323        0
600000        20060324        0
600000        20060327        0
600000        20060328        0
600000        20060329        0
600000        20060330        0
600000        20060331        0
600000        20060403        0
600000        20060404        0
600000        20060405        0
600000        20060406        0
600000        20060407        0
600000        20060410        0
600000        20060411        0
600000        20060412        0
600000        20060413        0
600000        20060414        0
600000        20060417        0
600000        20060418        0
600000        20060419        0
600000        20060420        0
600000        20060421        0
600000        20060424        0
600000        20060425        0
600000        20060426        0
600000        20060427        0
600000        20060428        0
600000        20060508        0
600000        20060509        0
600000        20060510        0
600000        20060511        0
600000        20060512        22&#46;289890378
600000        20060515        -1&#46;294820717
600000        20060516        -0&#46;403632694
600000        20060517        1&#46;1144883485
600000        20060518        -1&#46;903807615
600000        20060519        1&#46;3278855975
600000        20060522        -2&#46;217741935
600000        20060523        -3&#46;608247423
600000        20060524        5&#46;1336898396
600000        20060525        0&#46;8138351984
600000        20060526        2&#46;7245206862
600000        20060529        0&#46;0982318271
600000        20060530        0
600000        20060531        -2&#46;551521099
600000        20060601        2&#46;0140986908
600000        20060602        -1&#46;678183613
600000        20060605        -0&#46;803212851
600000        20060606        -1&#46;315789474
600000        20060607        -7&#46;282051282
600000        20060608        -1&#46;438053097
600000        20060609        -2&#46;244668911
600000        20060612        3&#46;6739380023
600000        20060613        -1&#46;993355482
600000        20060614        -1&#46;920903955
600000        20060615        0
600000        20060616        6&#46;6820276498
600000        20060619        -0&#46;971922246
600000        20060620        3&#46;0534351145
600000        20060621        -0&#46;952380952
600000        20060622        2&#46;0299145299
600000        20060623        2&#46;4083769634
600000        20060626        1&#46;8404907975
600000        20060627        -2&#46;008032129
600000        20060628        -0&#46;614754098
600000        20060629        1&#46;4432989691
600000        20060630        0&#46;3048780488
600000        20060703        3&#46;9513677812
600000        20060704        -1&#46;656920078
600000        20060705        -4&#46;558969277
600000        20060706        0&#46;6230529595
600000        20060707        -1&#46;960784314
600000        20060710        1&#46;3684210526
600000        20060711        0&#46;9345794393
600000        20060712        -0&#46;514403292
600000        20060713        -4&#46;446742503
600000        20060714        0&#46;8658008658
600000        20060717        0
600000        20060718        -0&#46;107296137
600000        20060719        -1&#46;288936627
600000        20060720        0&#46;4352557127
600000        20060721        1&#46;3001083424
600000        20060724        0&#46;6417112299
600000        20060725        -1&#46;487778959
600000        20060726        0
600000        20060727        -1&#46;294498382
600000        20060728        -1&#46;420765027
600000        20060731        -2&#46;88248337
600000        20060801        -0&#46;456621005
600000        20060802        -0&#46;688073394
600000        20060803        1&#46;9630484988
600000        20060804        -0&#46;453001133
600000        20060807        0&#46;5688282139
600000        20060808        2&#46;6018099548
600000        20060809        -1&#46;212789416
600000        20060810        2&#46;34375
600000        20060811        0&#46;5452562704
600000        20060814        -0&#46;32537961
600000        20060815        1&#46;8498367791
600000        20060816        1&#46;2820512821
600000        20060817        -1&#46;898734177
600000        20060818        -0&#46;537634409
600000        20060821        1&#46;1891891892
600000        20060822        1&#46;9230769231
600000        20060823        0&#46;9433962264
600000        20060824        0&#46;1038421599
600000        20060825        -0&#46;933609959
600000        20060828        3&#46;3507853403
600000        20060829        -1&#46;418439716
600000        20060830        -0&#46;308324769
600000        20060831        0&#46;9278350515
600000        20060901        -2&#46;349336057
600000        20060904        1&#46;4644351464
600000        20060905        1&#46;5463917526
600000        20060906        1&#46;421319797
600000        20060907        0&#46;2002002002
600000        20060908        1&#46;998001998
600000        20060911        3&#46;4280117532
600000        20060912        -0&#46;946969697
600000        20060913        0&#46;6692160612
600000        20060914        -1&#46;044634378
600000        20060915        0&#46;0959692898
600000        20060918        -2&#46;109300096
600000        20060919        1&#46;3712047013
600000        20060920        2&#46;1256038647
600000        20060921        2&#46;6490066225
600000        20060922        -2&#46;304147465
600000        20060925        -2&#46;830188679
600000        20060926        -1&#46;844660194
600000        20060927        2&#46;4727992087
600000        20060928        0&#46;5791505792
600000        20060929        1&#46;5355086372
600000        20061009        9&#46;9243856333
600000        20061010        1&#46;0318142734
600000        20061011        1&#46;4468085106
600000        20061012        1&#46;2583892617
600000        20061013        0&#46;4971002486
600000        20061016        1&#46;8136850783
600000        20061017        -2&#46;834008097
600000        20061018        7&#46;1666666667
600000        20061019        0&#46;3110419907
600000        20061020        1&#46;5503875969
600000        20061023        -2&#46;977099237
600000        20061024        2&#46;8324154209
600000        20061025        5&#46;0497322112
600000        20061026        1&#46;6751638747
600000        20061027        -2&#46;148997135
600000        20061030        -2&#46;342606149
600000        20061031        4&#46;347826087
600000        20061101        -1&#46;077586207
600000        20061102        -3&#46;631082062
600000        20061103        1&#46;8839487566
600000        20061106        0
600000        20061107        5&#46;8431952663
600000        20061108        -2&#46;725366876
600000        20061109        5&#46;3879310345
600000        20061110        2&#46;9311520109
600000        20061113        -4&#46;900662252
600000        20061114        3&#46;9693593315
600000        20061115        1&#46;6075016745
600000        20061116        0
600000        20061117        0
600000        20061120        0
600000        20061121        0
600000        20061122        7&#46;6466710613
600000        20061123        0&#46;9185548071
600000        20061124        -3&#46;033980583
600000        20061127        -3&#46;066332916
600000        20061128        1&#46;8721755972
600000        20061129        0&#46;5069708492
600000        20061130        5&#46;6746532156
600000        20061201        -1&#46;730310263
600000        20061204        3&#46;8858530662
600000        20061205        0&#46;5844535359
600000        20061206        -1&#46;626961069
600000        20061207        0&#46;413467218
600000        20061208        -4&#46;117647059
600000        20061211        3&#46;4355828221
600000        20061212        2&#46;0759193357
600000        20061213        -1&#46;743172574
600000        20061214        -0&#46;709639267
600000        20061215        4&#46;7051816557
600000        20061218        2&#46;1046643914
600000        20061219        -1&#46;281337047
600000        20061220        -1&#46;072234763
600000        20061221        -2&#46;281802624
600000        20061222        1&#46;1091652072
600000        20061225        5&#46;5427251732
600000        20061226        -1&#46;148796499
600000        20061227        6&#46;7515218594
600000        20061228        4&#46;1472265422
600000        20061229        5&#46;6246889
600000        20070104        0&#46;7068803016
600000        20070105        -2&#46;948058025
600000        20070108        2&#46;025072324
600000        20070109        7&#46;2778827977
600000        20070110        3&#46;6563876652
600000        20070111        -1&#46;742456439
600000        20070112        -2&#46;638408304
600000        20070115        5&#46;9529098179
600000        20070116        -0&#46;71278826
600000        20070117        -3&#46;505067568
600000        20070118        -6&#46;783369803
600000        20070119        2&#46;0187793427
600000        20070122        3&#46;5434882651
600000        20070123        10
600000        20070124        -0&#46;606060606
600000        20070125        -1&#46;341463415
600000        20070126        9&#46;0646889164
600000        20070129        2&#46;3044956555
600000        20070130        -3&#46;17577548
600000        20070131        -5&#46;072463768
600000        20070201        -1&#46;607071113
600000        20070202        -6&#46;492445896
600000        20070205        -5&#46;633187773
600000        20070206        6&#46;7561314206
600000        20070207        3&#46;5977459905
600000        20070208        -2&#46;008368201
600000        20070209        -4&#46;14175918
600000        20070212        7&#46;0824053452
600000        20070213        2&#46;0382695507
600000        20070214        1&#46;6714227477
600000        20070215        2&#46;2854851644
600000        20070216        -0&#46;509604077
600000        20070226        -4&#46;806934594
600000        20070227        -9&#46;933774834
600000        20070228        2&#46;1599264706
600000        20070301        -2&#46;024291498
600000        20070302        0&#46;3673094582
600000        20070305        -1&#46;372369625
600000        20070306        8&#46;9981447124
600000        20070307        1&#46;2765957447
600000        20070308        1&#46;0504201681
600000        20070309        2&#46;7858627859
600000        20070312        -3&#46;317152104
600000        20070313        -1&#46;631799163
600000        20070314        -2&#46;93492131
600000        20070315        5&#46;2147239264
600000        20070316        -4&#46;164931279
600000        20070319        9&#46;8218166015
600000        20070320        -1&#46;345468935
600000        20070321        4&#46;5326915363
600000        20070322        0&#46;4221028396
600000        20070323        -1&#46;987008024
600000        20070326        0&#46;2729044834
600000        20070327        -1&#46;982892691
600000        20070328        2&#46;4593415311
600000        20070329        2&#46;9036004646
600000        20070330        0&#46;1128668172
600000        20070402        4&#46;9229612927
600000        20070403        -0&#46;179083095
600000        20070404        1&#46;7581628992
600000        20070405        2&#46;1509167842
600000        20070406        -2&#46;89955126
600000        20070409        1&#46;2442232492
600000        20070410        2&#46;422752809
600000        20070411        4&#46;2852245458
600000        20070412        -1&#46;64365549
600000        20070413        -0&#46;668449198
600000        20070416        2&#46;8600269179
600000        20070417        -2&#46;780503762
600000        20070418        -3&#46;465679677
600000        20070419        -6&#46;169397002
600000        20070420        3&#46;3803863299
600000        20070423        2&#46;335609055
600000        20070424        -2&#46;31741573
600000        20070425        3&#46;1631919482
600000        20070426        -1&#46;533101045
600000        20070427        -3&#46;113941967
600000        20070430        -2&#46;15485756
600000        20070508        4&#46;5539380366
600000        20070509        2&#46;7133166726
600000        20070510        1&#46;3903371568
600000        20070511        0
600000        20070514        -0&#46;102845389
600000        20070515        -7&#46;481125601
600000        20070516        1&#46;0756676558
600000        20070517        2&#46;0917431193
600000        20070518        -0&#46;682961898
600000        20070521        -0&#46;687658342
600000        20070522        0
600000        20070523        0&#46;5466472303
600000        20070524        5&#46;0743022834
600000        20070525        1&#46;1383235598
600000        20070528        0&#46;7162346521
600000        20070529        0&#46;2370470708
600000        20070530        3&#46;2432432432
600000        20070531        10&#46;013089005
600000        20070601        -2&#46;230814991
600000        20070604        -1&#46;703681168
600000        20070605        1&#46;0523057877
600000        20070606        -1&#46;56202144
600000        20070607        1&#46;4001244555
600000        20070608        -3&#46;436637005
600000        20070611        2&#46;2878932316
600000        20070612        0&#46;2174588381
600000        20070613        3&#46;8127712337
600000        20070614        1&#46;6721409376
600000        20070615        5&#46;0220264317
600000        20070618        3&#46;0201342282
600000        20070619        -0&#46;054288817
600000        20070620        -4&#46;508419337
600000        20070621        3&#46;1001137656
600000        20070622        2&#46;7310344828
600000        20070625        1&#46;2620837809
600000        20070626        -1&#46;776717051
600000        20070627        3&#46;9146868251
600000        20070628        -2&#46;753962068
600000        20070629        -2&#46;644937216
600000        20070702        -3&#46;046103183
600000        20070703        1&#46;1604868384
600000        20070704        -4&#46;476776721
600000        20070705        -2&#46;138254247
600000        20070706        3&#46;2624962586
600000        20070709        2&#46;8405797101
600000        20070710        1&#46;4937993236
600000        20070711        0&#46;8053318523
600000        20070712        2&#46;3415977961
600000        20070713        -2&#46;314939435
600000        20070716        -4&#46;243593276
600000        20070717        4&#46;1151079137
600000        20070718        1&#46;1055831951
600000        20070719        2&#46;1869874248
600000        20070720        9&#46;8715890851
600000        20070723        1&#46;4852690528
600000        20070724        0&#46;3598848369
600000        20070725        1&#46;1235955056
600000        20070726        -2&#46;174940898
600000        20070727        -2&#46;199130014
600000        20070730        1&#46;3096120583
600000        20070731        -1&#46;829268293
600000        20070801        0&#46;347826087
600000        20070802        3&#46;5157217133
600000        20070803        5&#46;7880889739
600000        20070806        1&#46;8313361972
600000        20070807        -2&#46;109236234
600000        20070808        -0&#46;20412792
600000        20070809        2&#46;7272727273
600000        20070810        -1&#46;349557522
600000        20070813        -1&#46;323166629
600000        20070814        3&#46;3636363636
600000        20070815        1&#46;0334212841
600000        20070816        -3&#46;656147987
600000        20070817        -5&#46;03727129
600000        20070820        6&#46;9457659372
600000        20070821        4&#46;3149466192
600000        20070822        5&#46;3091684435
600000        20070823        1&#46;1338327597
600000        20070824        5&#46;4654654655
600000        20070827        -1&#46;271829916
600000        20070828        -0&#46;019227072
600000        20070829        -0&#46;230769231
600000        20070830        2&#46;0817270625
600000        20070831        3&#46;8519637462
600000        20070903        1&#46;8909090909
600000        20070904        -2&#46;980014276
600000        20070905        -2&#46;170314512
600000        20070906        0&#46;1128031585
600000        20070907        -2&#46;516431925
600000        20070910        2&#46;465806203
600000        20070911        -4&#46;211317917
600000        20070912        -2&#46;33562316
600000        20070913        2&#46;3110932476
600000        20070914        0
600000        20070917        1&#46;2767629149
600000        20070918        -3&#46;219550039
600000        20070919        -0&#46;761523046
600000        20070920        0&#46;4442649435
600000        20070921        -1&#46;527945316
600000        20070924        2&#46;4908125766
600000        20070925        -0&#46;956175299
600000        20070926        -2&#46;031375704
600000        20070927        3&#46;4695134469
600000        20070928        4&#46;1666666667
600000        20071008        4&#46;9523809524
600000        20071009        -0&#46;217785844
600000        20071010        -1&#46;546016733
600000        20071011        3&#46;3992240902
600000        20071012        -1&#46;750938003
600000        20071015        -1&#46;873067831
600000        20071016        2&#46;057079318
600000        20071017        -0&#46;617396041
600000        20071018        -5&#46;62762653
600000        20071019        -0&#46;851887706
600000        20071022        1&#46;5426674478
600000        20071023        1&#46;1346153846
600000        20071024        4&#46;5255752044
600000        20071025        0&#46;1819174095
600000        20071026        5&#46;44761213
600000        20071029        -0&#46;034441192
600000        20071030        -0&#46;516795866
600000        20071031        1&#46;8008658009
600000        20071101        1&#46;5138629019
600000        20071102        -3&#46;032841823
600000        20071105        -5&#46;114912735
600000        20071106        -1&#46;29302495
600000        20071107        2&#46;7306273063
600000        20071108        -4&#46;938936782
600000        20071109        1&#46;4169658039
600000        20071112        3&#46;2786885246
600000        20071113        -4&#46;617604618
600000        20071114        1&#46;947806354
600000        20071115        1&#46;6138007791
600000        20071116        -3&#46;504928806
600000        20071119        -3&#46;897086644
600000        20071120        -1&#46;023622047
600000        20071121        -1&#46;829753381
600000        20071122        -4&#46;943273906
600000        20071123        2&#46;3017902813
600000        20071126        -0&#46;375
600000        20071127        -0&#46;271852781
600000        20071128        0&#46;5661564269
600000        20071129        7&#46;8190158465
600000        20071130        0&#46;348095146
600000        20071203        3&#46;4110618616
600000        20071204        -0&#46;913156914
600000        20071205        1&#46;4858002633
600000        20071206        3&#46;3543365456
600000        20071207        -0&#46;304823382
600000        20071210        -2&#46;410071942
600000        20071211        -2&#46;211573903
600000        20071212        -5&#46;898982284
600000        20071213        -2&#46;924093731
600000        20071214        2&#46;0631318341
600000        20071217        -5&#46;983424298
600000        20071218        -1&#46;053536874
600000        20071219        2&#46;9335071708
600000        20071220        4&#46;3065231159
600000        20071221        -0&#46;566686905
600000        20071224        1&#46;9132912681
600000        20071225        0&#46;3395246655
600000        20071226        -0&#46;298566879
600000        20071227        2&#46;9546815732
600000        20071228        2&#46;3851076207
600000        20080102        1&#46;4204545455
600000        20080103        -5&#46;004668534
600000        20080104        4&#46;2068016513
600000        20080107        5&#46;6215808338
600000        20080108        0&#46;7144132881
600000        20080109        0&#46;8334811137
600000        20080110        0&#46;1758705593
600000        20080111        8&#46;128511236
600000        20080114        -3&#46;896736483
600000        20080115        -0&#46;084473729
600000        20080116        -5&#46;613797768
600000        20080117        1&#46;1644571838
600000        20080118        1&#46;0270940322
600000        20080121        -5&#46;241016652
600000        20080122        -7&#46;510173881
600000        20080123        4&#46;42
600000        20080124        -1&#46;436506416
600000        20080125        3&#46;3812670035
600000        20080128        -4&#46;906015038
600000        20080129        -0&#46;395335046
600000        20080130        -5&#46;278825164
600000        20080131        -3&#46;624554787
600000        20080201        2&#46;6739130435
600000        20080204        9&#46;993648105
600000        20080205        -1&#46;058710298
600000        20080213        -4&#46;708171206
600000        20080214        2&#46;1437321356
600000        20080215        -2&#46;418548871
600000        20080218        2&#46;8676771815
600000        20080219        1&#46;7323775388
600000        20080220        -10&#46;00195733
600000        20080221        -5&#46;980861244
600000        20080222        -7&#46;517927365
600000        20080225        -2&#46;451225613
600000        20080226        3&#46;8205128205
600000        20080227        0&#46;3210669301
600000        20080228        0&#46;6646971935
600000        20080229        3&#46;03252629
600000        20080303        1&#46;6615238547
600000        20080304        -8&#46;989026383
600000        20080305        0&#46;4361210877
600000        20080306        2&#46;4265644955
600000        20080307        -1&#46;645885287
600000        20080310        -7&#46;555780933
600000        20080311        -2&#46;770159078
600000        20080312        -6&#46;064880113
600000        20080313        1&#46;4114114114
600000        20080314        -3&#46;93840687
600000        20080317        0&#46;5548705302
600000        20080318        -0&#46;122624157
600000        20080319        0
600001        20060104       
600001        20060105        2&#46;5270758123
600001        20060106        0
600001        20060109        -0&#46;352112676
600001        20060110        -0&#46;706713781
600001        20060111        4&#46;6263345196
600001        20060112        0&#46;6802721088
600001        20060113        0&#46;3378378378
600001        20060116        -2&#46;02020202
600001        20060117        3&#46;7800687285
600001        20060118        3&#46;3112582781
600001        20060119        2&#46;2435897436
600001        20060120        4&#46;7021943574
600001        20060123        0
600001        20060124        0
600001        20060125        0
600001        20060206        0
600001        20060207        0
600001        20060208        0
600001        20060209        0
600001        20060210        0
600001        20060213        -3&#46;592814371
600001        20060214        -1&#46;552795031
600001        20060215        -1&#46;261829653
600001        20060216        -2&#46;555910543
600001        20060217        1&#46;6393442623
600001        20060220        0&#46;3225806452
600001        20060221        0&#46;3215434084
600001        20060222        0
600001        20060223        0
600001        20060224        1&#46;2820512821
600001        20060227        0&#46;6329113924
600001        20060228        0&#46;6289308176
600001        20060301        -0&#46;625
600001        20060302        -1&#46;886792453
600001        20060303        0
600001        20060306        -0&#46;320512821
600001        20060307        -1&#46;92926045
600001        20060308        -2&#46;62295082
600001        20060309        1&#46;3468013468
600001        20060310        2&#46;657807309
600001        20060313        2&#46;9126213592
600001        20060314        2&#46;2012578616
600001        20060315        -2&#46;769230769
600001        20060316        -0&#46;316455696
600001        20060317        1&#46;2698412698
600001        20060320        0
600001        20060321        0
600001        20060322        0
600001        20060323        0
600001        20060324        0
600001        20060327        0
600001        20060328        0
600001        20060329        0
600001        20060330        0
600001        20060331        0
600001        20060403        0
600001        20060404        0
600001        20060405        -7&#46;523510972
600001        20060406        2&#46;3728813559
600001        20060407        -1&#46;655629139
600001        20060410        0&#46;6734006734
600001        20060411        0
600001        20060412        -0&#46;334448161
600001        20060413        -1&#46;342281879
600001        20060414        5&#46;1020408163
600001        20060417        -1&#46;618122977
600001        20060418        0&#46;9868421053
600001        20060419        0
600001        20060420        -3&#46;25732899
600001        20060421        -0&#46;673400673
600001        20060424        -3&#46;728813559
600001        20060425        -2&#46;464788732
600001        20060426        -1&#46;444043321
600001        20060427        -4&#46;395604396
600001        20060428        1&#46;5325670498
600001        20060508        1&#46;5094339623
600001        20060509        1&#46;1152416357
600001        20060510        9&#46;5588235294
600001        20060511        -3&#46;020134228
600001        20060512        0
600001        20060515        3&#46;4602076125
600001        20060516        0
600001        20060517        4&#46;6822742475
600001        20060518        1&#46;2779552716
600001        20060519        1&#46;8927444795
600001        20060522        6&#46;1919504644
600001        20060523        -3&#46;498542274
600001        20060524        -1&#46;510574018
600001        20060525        -2&#46;45398773
600001        20060526        7&#46;5471698113
600001        20060529        9&#46;9415204678
600001        20060530        4&#46;5212765957
600001        20060531        9&#46;9236641221
600001        20060601        7&#46;8703703704
600001        20060602        -4&#46;721030043
600001        20060605        -4&#46;504504505
600001        20060606        3&#46;7735849057
600001        20060607        -10&#46;22727273
600001        20060608        -1&#46;518987342
600001        20060609        -0&#46;514138817
600001        20060612        1&#46;8087855297
600001        20060613        -5&#46;583756345
600001        20060614        -4&#46;569892473
600001        20060615        0&#46;5633802817
600001        20060616        2&#46;5210084034
600001        20060619        0&#46;5464480874
600001        20060620        -1&#46;086956522
600001        20060621        2&#46;4725274725
600001        20060622        -2&#46;412868633
600001        20060623        -1&#46;648351648
600001        20060626        1&#46;3966480447
600001        20060627        -1&#46;101928375
600001        20060628        2&#46;7855153203
600001        20060629        3&#46;7940379404
600001        20060630        1&#46;3054830287
600001        20060703        0&#46;2577319588
600001        20060704        -3&#46;084832905
600001        20060705        -3&#46;183023873
600001        20060706        1&#46;095890411
600001        20060707        -1&#46;35501355
600001        20060710        0&#46;5494505495
600001        20060711        1&#46;0928961749
600001        20060712        -1&#46;351351351
600001        20060713        -5&#46;753424658
600001        20060714        -0&#46;581395349
600001        20060717        1&#46;7543859649
600001        20060718        0&#46;2873563218
600001        20060719        -2&#46;865329513
600001        20060720        -0&#46;589970501
600001        20060721        2&#46;0771513353
600001        20060724        -0&#46;290697674
600001        20060725        2&#46;332361516
600001        20060726        -0&#46;284900285
600001        20060727        -2
600001        20060728        -0&#46;874635569
600001        20060731        -0&#46;882352941
600001        20060801        1&#46;4836795252
600001        20060802        1&#46;1695906433
600001        20060803        -1&#46;734104046
600001        20060804        -3&#46;529411765
600001        20060807        -4&#46;268292683
600001        20060808        2&#46;8662420382
600001        20060809        1&#46;2383900929
600001        20060810        3&#46;9755351682
600001        20060811        1&#46;1764705882
600001        20060814        -2&#46;61627907
600001        20060815        3&#46;2835820896
600001        20060816        -0&#46;289017341
600001        20060817        0
600001        20060818        0&#46;2898550725
600001        20060821        -0&#46;578034682
600001        20060822        0&#46;2906976744
600001        20060823        -0&#46;579710145
600001        20060824        1&#46;166180758
600001        20060825        1&#46;1527377522
600001        20060828        0&#46;5698005698
600001        20060829        -1&#46;133144476
600001        20060830        0
600001        20060831        1&#46;7191977077
600001        20060901        2&#46;8169014085
600001        20060904        0&#46;5479452055
600001        20060905        0
600001        20060906        -1&#46;089918256
600001        20060907        -4&#46;407713499
600001        20060908        0
600001        20060911        -0&#46;288184438
600001        20060912        2&#46;8901734104
600001        20060913        -0&#46;280898876
600001        20060914        -0&#46;563380282
600001        20060915        0&#46;8498583569
600001        20060918        0&#46;8426966292
600001        20060919        -1&#46;39275766
600001        20060920        -0&#46;282485876
600001        20060921        -0&#46;283286119
600001        20060922        -1&#46;420454545
600001        20060925        0
600001        20060926        2&#46;0172910663
600001        20060927        0
600001        20060928        -0&#46;847457627
600001        20060929        -0&#46;56980057
600001        20061009        1&#46;7191977077
600001        20061010        -0&#46;281690141
600001        20061011        1&#46;6949152542
600001        20061012        3&#46;6111111111
600001        20061013        -2&#46;412868633
600001        20061016        -1&#46;373626374
600001        20061017        -0&#46;557103064
600001        20061018        0&#46;5602240896
600001        20061019        0&#46;278551532
600001        20061020        -0&#46;555555556
600001        20061023        0&#46;5586592179
600001        20061024        3&#46;6111111111
600001        20061025        1&#46;8766756032
600001        20061026        0&#46;7894736842
600001        20061027        -0&#46;261096606
600001        20061030        2&#46;3560209424
600001        20061031        2&#46;0460358056
600001        20061101        -2&#46;255639098
600001        20061102        3&#46;3333333333
600001        20061103        1&#46;7369727047
600001        20061106        3&#46;6585365854
600001        20061107        -4&#46;470588235
600001        20061108        -3&#46;9408867
600001        20061109        4&#46;358974359
600001        20061110        -4&#46;176904177
600001        20061113        -5&#46;128205128
600001        20061114        -1&#46;351351351
600001        20061115        3&#46;8356164384
600001        20061116        -2&#46;90237467
600001        20061117        0&#46;8152173913
600001        20061120        0&#46;539083558
600001        20061121        -0&#46;268096515
600001        20061122        1&#46;3440860215
600001        20061123        1&#46;3262599469
600001        20061124        2&#46;6178010471
600001        20061127        0&#46;5102040816
600001        20061128        -0&#46;253807107
600001        20061129        0
600001        20061130        2&#46;0356234097
600001        20061201        -1&#46;496259352
600001        20061204        3&#46;7974683544
600001        20061205        -0&#46;243902439
600001        20061206        -2&#46;93398533
600001        20061207        0&#46;5037783375
600001        20061208        -4&#46;260651629
600001        20061211        2&#46;3560209424
600001        20061212        -0&#46;511508951
600001        20061213        -1&#46;285347044
600001        20061214        5&#46;7291666667
600001        20061215        -0&#46;985221675
600001        20061218        -0&#46;248756219
600001        20061219        0&#46;9975062344
600001        20061220        0&#46;2469135802
600001        20061221        -0&#46;985221675
600001        20061222        -0&#46;995024876
600001        20061225        1&#46;0050251256
600001        20061226        3&#46;9800995025
600001        20061227        2&#46;6315789474
600001        20061228        0
600001        20061229        0&#46;2331002331
600001        20070104        5&#46;8139534884
600001        20070105        3&#46;0769230769
600001        20070108        0&#46;4264392324
600001        20070109        9&#46;9787685775
600001        20070110        0&#46;1930501931
600001        20070111        -4&#46;046242775
600001        20070112        -6&#46;827309237
600001        20070115        3&#46;6637931034
600001        20070116        5&#46;8212058212
600001        20070117        -5&#46;10805501
600001        20070118        -1&#46;242236025
600001        20070119        1&#46;677148847
600001        20070122        4&#46;7422680412
600001        20070123        10&#46;039370079
600001        20070124        9&#46;3023255814
600001        20070125        -4&#46;909983633
600001        20070126        4&#46;6471600688
600001        20070129        1&#46;6447368421
600001        20070130        -1&#46;779935275
600001        20070131        -7&#46;578253707
600001        20070201        -1&#46;604278075
600001        20070202        -7&#46;971014493
600001        20070205        -4&#46;921259843
600001        20070206        10&#46;144927536
600001        20070207        3&#46;7593984962
600001        20070208        1&#46;4492753623
600001        20070209        -4&#46;642857143
600001        20070212        3&#46;5580524345
600001        20070213        1&#46;0849909584
600001        20070214        3&#46;9355992844
600001        20070215        3&#46;6144578313
600001        20070216        6&#46;4784053156
600001        20070226        5&#46;7722308892
600001        20070227        -9&#46;587020649
600001        20070228        5&#46;8727569331
600001        20070301        -4&#46;622496148
600001        20070302        0&#46;3231017771
600001        20070305        -2&#46;093397746
600001        20070306        -0&#46;328947368
600001        20070307        1&#46;8151815182
600001        20070308        0&#46;6482982172
600001        20070309        0&#46;8051529791
600001        20070312        4&#46;4728434505
600001        20070313        -0&#46;917431193
600001        20070314        -3&#46;240740741
600001        20070315        -0&#46;159489633
600001        20070316        -1&#46;118210863
600001        20070319        -1&#46;13085622
600001        20070320        0&#46;9803921569
600001        20070321        -0&#46;970873786
600001        20070322        0&#46;9803921569
600001        20070323        2&#46;7508090615
600001        20070326        1&#46;7322834646
600001        20070327        -0&#46;464396285
600001        20070328        4&#46;5101088647
600001        20070329        -2&#46;827380952
600001        20070330        -3&#46;522205207
600001        20070402        3&#46;6507936508
600001        20070403        -0&#46;765696784
600001        20070404        -0&#46;925925926
600001        20070405        2&#46;0249221184
600001        20070406        -0&#46;610687023
600001        20070409        3&#46;9938556068
600001        20070410        5&#46;7607090103
600001        20070411        -0&#46;698324022
600001        20070412        0
600001        20070413        -2&#46;672292546
600001        20070416        2&#46;1676300578
600001        20070417        -0&#46;141442716
600001        20070418        4&#46;3909348442
600001        20070419        -4&#46;20624152
600001        20070420        7&#46;3654390935
600001        20070423        6&#46;8601583113
600001        20070424        -0&#46;24691358
600001        20070425        -0&#46;742574257
600001        20070426        0&#46;3740648379
600001        20070427        -2&#46;98136646
600001        20070430        -0&#46;384122919
600001        20070508        5&#46;2699228792
600001        20070509        -1&#46;343101343
600001        20070510        6&#46;9306930693
600001        20070511        0
600001        20070514        1&#46;7361111111
600001        20070515        -6&#46;14334471
600001        20070516        0&#46;7272727273
600001        20070517        1&#46;083032491
600001        20070518        -1&#46;19047619
600001        20070521        1&#46;3253012048
600001        20070522        3&#46;2104637337
600001        20070523        0&#46;1152073733
600001        20070524        -2&#46;53164557
600001        20070525        -0&#46;354191263
600001        20070528        1&#46;8957345972
600001        20070529        0&#46;9302325581
600001        20070530        -10&#46;02304147
600001        20070531        -2&#46;432778489
600001        20070601        -9&#46;580052493
600001        20070604        -8&#46;708272859
600001        20070605        10&#46;015898251
600001        20070606        3&#46;1791907514
600001        20070607        1&#46;2605042017
600001        20070608        0
600001        20070611        0&#46;1383125864
600001        20070612        2&#46;9005524862
600001        20070613        2&#46;8187919463
600001        20070614        -3&#46;65535248
600001        20070615        -2&#46;574525745
600001        20070618        2&#46;364394993
600001        20070619        0&#46;9510869565
600001        20070620        -2&#46;153432032
600001        20070621        -1&#46;650618982
600001        20070622        -4&#46;755244755
600001        20070625        -4&#46;405286344
600001        20070626        3&#46;5330261137
600001        20070627        -0&#46;296735905
600001        20070628        -2&#46;380952381
600001        20070629        -2&#46;896341463
600001        20070702        1&#46;5698587127
600001        20070703        0
600001        20070704        -2&#46;627511592
600001        20070705        -7&#46;301587302
600001        20070706        4&#46;2808219178
600001        20070709        0&#46;4926108374
600001        20070710        -3&#46;758169935
600001        20070711        1&#46;0186757216
600001        20070712        0&#46;6722689076
600001        20070713        -0&#46;500834725
600001        20070716        -4&#46;530201342
600001        20070717        1&#46;230228471
600001        20070718        0
600001        20070719        0&#46;5208333333
600001        20070720        3&#46;9723661485
600001        20070723        9&#46;9667774086
600001        20070724        -1&#46;66163142
600001        20070725        1&#46;3824884793
600001        20070726        0&#46;303030303
600001        20070727        2&#46;2658610272
600001        20070730        2&#46;9542097489
600001        20070731        -0&#46;143472023
600001        20070801        -5&#46;747126437
600001        20070802        2&#46;2865853659
600001        20070803        -0&#46;596125186
600001        20070806        4&#46;047976012
600001        20070807        2&#46;4495677233
600001        20070808        -2&#46;812939522
600001        20070809        1&#46;3024602026
600001        20070810        -1&#46;571428571
600001        20070813        2&#46;3222060958
600001        20070814        1&#46;9858156028
600001        20070815        -0&#46;695410292
600001        20070816        -2&#46;661064426
600001        20070817        -1&#46;151079137
600001        20070820        7&#46;5691411936
600001        20070821        -0&#46;541271989
600001        20070822        -0&#46;816326531
600001        20070823        0&#46;548696845
600001        20070824        0&#46;136425648
600001        20070827        2&#46;1798365123
600001        20070828        4&#46;5333333333
600001        20070829        1&#46;1479591837
600001        20070830        2&#46;0176544767
600001        20070831        4&#46;326328801
600001        20070903        5&#46;9241706161
600001        20070904        -3&#46;355704698
600001        20070905        0&#46;5787037037
600001        20070906        2&#46;3014959724
600001        20070907        -2&#46;137232846
600001        20070910        -0&#46;91954023
600001        20070911        -6&#46;728538283
600001        20070912        1&#46;9900497512
600001        20070913        4&#46;3902439024
600001        20070914        2&#46;5700934579
600001        20070917        10&#46;022779043
600001        20070918        0&#46;3105590062
600001        20070919        -4&#46;334365325
600001        20070920        0&#46;2157497303
600001        20070921        -1&#46;82992465
600001        20070924        1&#46;5350877193
600001        20070925        -4&#46;64362851
600001        20070926        -2&#46;831257078
600001        20070927        1&#46;3986013986
600001        20070928        2&#46;0689655172
600001        20071008        1&#46;0135135135
600001        20071009        -0&#46;780379041
600001        20071010        1&#46;3483146067
600001        20071011        -2&#46;328159645
600001        20071012        -2&#46;383654938
600001        20071015        4&#46;6511627907
600001        20071016        -0&#46;777777778
600001        20071017        0&#46;3359462486
600001        20071018        -2&#46;34375
600001        20071019        -1&#46;828571429
600001        20071022        -4&#46;656577416
600001        20071023        2&#46;5641025641
600001        20071024        -1&#46;547619048
600001        20071025        -6&#46;045949214
600001        20071026        0&#46;7722007722
600001        20071029        3&#46;8314176245
600001        20071030        -0&#46;36900369
600001        20071031        0&#46;8641975309
600001        20071101        -4&#46;406364749
600001        20071102        -5&#46;377720871
600001        20071105        1&#46;2178619756
600001        20071106        1&#46;871657754
600001        20071107        -2&#46;624671916
600001        20071108        -3&#46;504043127
600001        20071109        -1&#46;117318436
600001        20071112        -1&#46;694915254
600001        20071113        1&#46;4367816092
600001        20071114        3&#46;5410764873
600001        20071115        -2&#46;462380301
600001        20071116        -0&#46;841514727
600001        20071119        2&#46;4045261669
600001        20071120        2&#46;9005524862
600001        20071121        -2&#46;147651007
600001        20071122        -3&#46;703703704
600001        20071123        1&#46;7094017094
600001        20071126        -0&#46;980392157
600001        20071127        -0&#46;424328147
600001        20071128        -0&#46;284090909
600001        20071129        1&#46;4245014245
600001        20071130        -2&#46;387640449
600001        20071203        1&#46;4388489209
600001        20071204        1&#46;134751773
600001        20071205        3&#46;5063113604
600001        20071206        0
600001        20071207        0&#46;8130081301
600001        20071210        2&#46;8225806452
600001        20071211        0&#46;522875817
600001        20071212        -1&#46;170351105
600001        20071213        -3&#46;815789474
600001        20071214        0&#46;9575923393
600001        20071217        -1&#46;89701897
600001        20071218        2&#46;7624309392
600001        20071219        2&#46;0161290323
600001        20071220        0&#46;2635046113
600001        20071221        0&#46;9198423127
600001        20071224        0&#46;5208333333
600001        20071225        1&#46;0362694301
600001        20071226        0&#46;2564102564
600001        20071227        2&#46;8132992327
600001        20071228        0&#46;8706467662
600001        20080102        3&#46;3292231813
600001        20080103        10&#46;023866348
600001        20080104        2&#46;9284164859
600001        20080107        4&#46;2149631191
600001        20080108        -2&#46;42669363
600001        20080109        1&#46;4507772021
600001        20080110        4&#46;5965270684
600001        20080111        -1&#46;171875
600001        20080114        6&#46;3241106719
600001        20080115        1&#46;4869888476
600001        20080116        -4&#46;67032967
600001        20080117        -2&#46;689721422
600001        20080118        -1&#46;57946693
600001        20080121        -2&#46;60782347
600001        20080122        -7&#46;826982492
600001        20080123        8&#46;7150837989
600001        20080124        3&#46;4943473792
600001        20080125        -1&#46;191658391
600001        20080128        -7&#46;336683417
600001        20080129        0&#46;5422993492
600001        20080130        0
600001        20080131        -2&#46;157497303
600001        20080201        -2&#46;646085998
600001        20080204        8&#46;4937712344
600001        20080205        -2&#46;400835073
600001        20080213        -1&#46;711229947
600001        20080214        1&#46;8498367791
600001        20080215        -2&#46;02991453
600001        20080218        0&#46;4362050164
600001        20080219        4&#46;0173724213
600001        20080220        -1&#46;565762004
600001        20080221        1&#46;4846235419
600001        20080222        -5&#46;120167189
600001        20080225        0&#46;9911894273
600001        20080226        1&#46;8538713195
600001        20080227        -0&#46;428265525
600001        20080228        0&#46;4301075269
600001        20080229        -1&#46;070663812
600001        20080303        0&#46;3246753247
600001        20080304        -4&#46;099244876
600001        20080305        -3&#46;599550056
600001        20080306        -0&#46;466744457
600001        20080307        0&#46;8206330598
600001        20080310        -5&#46;11627907
600001        20080311        -1&#46;960784314
600001        20080312        -3&#46;625
600001        20080313        -1&#46;426718547
600001        20080314        -2&#46;236842105
600001        20080317        1&#46;7496635262
600001        20080318        0
600001        20080319        5&#46;0264550265
;
run;
[/code:1volt2ap]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-4-10 20:33:39 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

想问下[b:3snqbyev][color=#BF0000:3snqbyev]Shiyiming[/color:3snqbyev][/b:3snqbyev]你用的SAS是哪个版本阿,怎么我的log的式样都和你的不一样。我用的SAS9.0。
还想向[b:3snqbyev][color=#BF0000:3snqbyev]Shiyiming[/color:3snqbyev][/b:3snqbyev]请教,若是想在银行从事数据分析或是计量的工作,考SAS认证是否有用?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-4-11 10:38:47 | 只看该作者

to lili83xu/edle

我的回答:
1、我用的是9.1.3,只不过用了mprint和mlogic选项在debug你的macro,所以看上去log貌似很多的样子。
2、基本没有用。

我的问题:
1、lili83xu和edle是一个人?怎么能接着写这么详细的帖子?
2、还缺index等数据。请一次把数据给全,别像挤牙膏似的啊?这样人家怎么能帮你啊?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-4-11 13:41:32 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

谢谢施板和lili,我把程序在我的机器上运行的log贴了出来


NOTE: Copyright (c) 2002-2003 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) 9.1 (TS1M3 DBCS3054)
      Licensed to DANKOOK UNIVERSITY, Site 0038249001.
NOTE: 该会话正在执行,平台: XP_PRO



NOTE: SAS 9.1.3 SP4 (E9BX01)

NOTE: SAS 初始化所用时间:
      实际时间         4.46 秒
      CPU 时间         0.65 秒

NOTE: 从数据集 _EXP0_.INDEX 读取了 534 个观测。
NOTE: 数据集 WORK.INDEX 有 534 个观测和 2 个变量。
NOTE: 从数据集 _EXP0_.SH180PARAME 读取了 2 个观测。
NOTE: 数据集 WORK.SH180PARAME 有 2 个观测和 2 个变量。
NOTE: 从数据集 _EXP0_.TEST 读取了 1068 个观测。
NOTE: 数据集 WORK.TEST 有 1068 个观测和 3 个变量。
1
2
3    %macro calcu(eventzqdm,eventdate);/*isolate subset of data for a given company, calc Beta on
3  ! releveant range;
4    calc CAR on event window; append event period data to Results dataset*/
5
6    data test1;
7    set test;
8    if zqdm ^=&amp;eventzqdm&amp;i  then delete;  /*判断eventzqdm并删除无关数据*/
9    obs=_n_;
10   run;
11
12
13   proc sql noprint;
14   select obs into:num from test1
15   where tradedate=&amp;eventdate&amp;i;   /*判断eventdate*/
16   quit;
17
18   data betafirm;
19   set test1;
20   where %eval(&amp;num-10)&lt;=obs&lt;=%eval(&amp;num+10);
21   run;
22
23   data index1;
24   set index;
25   obs=_n_;
26   run;
27
28
29   proc sql noprint;
30   select obs into:num from index1
31   where tradedate=&amp;eventdate;
32   quit;
33
34   data beta_mkt;
35   set index1;
36   where %eval(&amp;num-10)&lt;=obs&lt;=%eval(&amp;num+10);
37   run;
38
39   data betaboth;
40     merge betafirm beta_mkt;
41   run;
42
43   proc reg noprint data=betaboth outest=Coefout;
44      model ret=indexret;
45   quit;
46
47   data _null_;
48     set coefout;
49     call symput('nextalpha',intercept);
50     call symput('nextbeta',indexret);
51   run;
52
53
54   data eventfirm;
55   set test1;
56   where %eval(&amp;num-30)&lt;=obs&lt;=%eval(&amp;num-11);
57   run;
58
59   data event_mkt;
60   set index1;
61   where %eval(&amp;num-30)&lt;=obs&lt;=%eval(&amp;num-11);
62   run;
63
64   data Car_calc;
65     merge eventfirm event_mkt;
66     by tradedate;
67     if _N_=1 then Car=ret-(&amp;nextalpha + &amp;nextbeta*indexret);
68     else car =ret-(&amp;nextalpha + &amp;nextbeta*indexret)+holdcar;
69     holdcar=car;
70     retain holdcar;
71     alpha=&amp;nextalpha;
72     beta=&amp;nextbeta;
73     run;
74
75   proc append base= Cars data=Car_calc(drop=holdcar);
76
77   %mend calcu;
78
79
80   %macro main;
81   %global num nextalpha nextbeta betanobs;
82   data _null_;
83         set sh180parame end=last;
84          call symput (('eventzqdm'||compress(_n_)),zqdm);
85          call symput(('eventdate'||compress(_n_)),ltdate);
86         if last then call symput('num',_n_);
87      run;
88   %do i=1 %to &amp;num;
89     %calcu(&amp;&amp;eventzqdm&amp;i,&amp;&amp;eventdate&amp;i);
90     %end;
91   %mend main;
92
93   %main;

NOTE: 数字值已转换为字符值,位置:(行:列)。
      1:91    1:146   1:198
NOTE: 从数据集 WORK.SH180PARAME 读取了 2 个观测。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.46 秒
      CPU 时间         0.04 秒

NOTE: 字符值已转换为数字值,位置:(行:列)。
      1:29
NOTE: 从数据集 WORK.TEST 读取了 1068 个观测。
NOTE: 数据集 WORK.TEST1 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

ERROR: 用 等于 (=) 的表达式具有不同数据类型的组件。
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间         0.26 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.TEST1 读取了 0 个观测。
      WHERE (obs&gt;=-8 and obs&lt;=12);
NOTE: 数据集 WORK.BETAFIRM 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.INDEX 读取了 534 个观测。
NOTE: 数据集 WORK.INDEX1 有 534 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

ERROR: 用 等于 (=) 的表达式具有不同数据类型的组件。
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.INDEX1 读取了 12 个观测。
      WHERE (obs&gt;=-8 and obs&lt;=12);
NOTE: 数据集 WORK.BETA_MKT 有 12 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.BETAFIRM 读取了 0 个观测。
NOTE: 从数据集 WORK.BETA_MKT 读取了 12 个观测。
NOTE: 数据集 WORK.BETABOTH 有 12 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

ERROR: No valid observations are found.
NOTE: 数据集 WORK.COEFOUT 有 0 个观测和 7 个变量。
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间         0.43 秒
      CPU 时间         0.00 秒

NOTE: 数字值已转换为字符值,位置:(行:列)。
      5:116   5:153
NOTE: 从数据集 WORK.COEFOUT 读取了 0 个观测。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

NOTE: 从数据集 WORK.TEST1 读取了 0 个观测。
      WHERE (obs&gt;=-28 and obs&lt;=-9);
NOTE: 数据集 WORK.EVENTFIRM 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.INDEX1 读取了 0 个观测。
      WHERE (obs&gt;=-28 and obs&lt;=-9);
NOTE: 数据集 WORK.EVENT_MKT 有 0 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

22: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT,
              PUT.
22: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT,
              PUT.
NOTE: 由调用宏“NEXTALPHA”生成行。
7       holdcar=car;   retain holdcar;   alpha=&amp;nextalpha;   beta=&amp;nextbeta;   run;
                                                         -                 -
                                                         22                22

ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT,
              PUT.

NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.CAR_CALC 可能不完整。该步停止时,共有 0 个观测和 9 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.12 秒
      CPU 时间         0.03 秒

NOTE: 正在追加 WORK.CAR_CALC 至 WORK.CARS。
NOTE: BASE 数据集不存在。 正将 DATA 文件复制到 BASE 文件。
NOTE: 从数据集 WORK.CAR_CALC 读取了 0 个观测。
NOTE: 数据集 WORK.CARS 有 0 个观测和 8 个变量。
NOTE: “PROCEDURE APPEND”所用时间(总处理时间):
      实际时间         0.04 秒
      CPU 时间         0.01 秒

NOTE: 字符值已转换为数字值,位置:(行:列)。
      1:29
NOTE: 从数据集 WORK.TEST 读取了 1068 个观测。
NOTE: 数据集 WORK.TEST1 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

ERROR: 用 等于 (=) 的表达式具有不同数据类型的组件。
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.TEST1 读取了 0 个观测。
      WHERE (obs&gt;=-8 and obs&lt;=12);
NOTE: 数据集 WORK.BETAFIRM 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

NOTE: 从数据集 WORK.INDEX 读取了 534 个观测。
NOTE: 数据集 WORK.INDEX1 有 534 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

ERROR: 用 等于 (=) 的表达式具有不同数据类型的组件。
NOTE: SAS 系统由于错误而停止了该步的处理。
NOTE: “PROCEDURE SQL”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.INDEX1 读取了 12 个观测。
      WHERE (obs&gt;=-8 and obs&lt;=12);
NOTE: 数据集 WORK.BETA_MKT 有 12 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

NOTE: 从数据集 WORK.BETAFIRM 读取了 0 个观测。
NOTE: 从数据集 WORK.BETA_MKT 读取了 12 个观测。
NOTE: 数据集 WORK.BETABOTH 有 12 个观测和 5 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

ERROR: No valid observations are found.
NOTE: 数据集 WORK.COEFOUT 有 0 个观测和 7 个变量。
NOTE: “PROCEDURE REG”所用时间(总处理时间):
      实际时间         0.03 秒
      CPU 时间         0.03 秒

NOTE: 数字值已转换为字符值,位置:(行:列)。
      5:116   5:153
NOTE: 从数据集 WORK.COEFOUT 读取了 0 个观测。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

NOTE: 从数据集 WORK.TEST1 读取了 0 个观测。
      WHERE (obs&gt;=-28 and obs&lt;=-9);
NOTE: 数据集 WORK.EVENTFIRM 有 0 个观测和 4 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.01 秒
      CPU 时间         0.01 秒

NOTE: 从数据集 WORK.INDEX1 读取了 0 个观测。
      WHERE (obs&gt;=-28 and obs&lt;=-9);
NOTE: 数据集 WORK.EVENT_MKT 有 0 个观测和 3 个变量。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒

22: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT,
              PUT.
22: 无法确定 LINE 和 COLUMN。
NOTE 242-205: NOSPOOL 已打开。用 OPTION SPOOL 重新运行可恢复出错的 LINE 和 COLUMN。
ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT,
              PUT.
NOTE: 由调用宏“NEXTALPHA”生成行。
7       holdcar=car;   retain holdcar;   alpha=&amp;nextalpha;   beta=&amp;nextbeta;   run;
                                                         -                 -
                                                         22                22

ERROR 22-322: 语法错误,期望下列之一: 名称, 带引号的字符串, 数值常数, 日期时间常数, 缺失值, INPUT,
              PUT.

NOTE: SAS 系统由于错误而停止了该步的处理。
WARNING: 数据集 WORK.CAR_CALC 可能不完整。该步停止时,共有 0 个观测和 9 个变量。
WARNING: 数据集 WORK.CAR_CALC 由于该步已停止,而没有被替换。
NOTE: “DATA 语句”所用时间(总处理时间):
      实际时间         0.00 秒
      CPU 时间         0.00 秒
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2008-4-11 13:49:58 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

index数据如下:

[code:shob4dxw]data index;
input tradedate $   indexret;
cards;
20060104        &#46;
20060105        1&#46;7148767829
20060106        1&#46;3568000571
20060109        0&#46;4281659523
20060110        0&#46;1976215914
20060111        -0&#46;385275725
20060112        0&#46;9276172654
20060113        -0&#46;440626876
20060116        -1&#46;85592151
20060117        0&#46;3009245997
20060118        2&#46;0460108224
20060119        0&#46;7793734533
20060120        0&#46;2425437812
20060123        0&#46;2354863189
20060124        0&#46;0193275723
20060125        1&#46;0095631524
20060206        1&#46;975563718
20060207        -0&#46;440240796
20060208        0&#46;3802148265
20060209        -1&#46;299829386
20060210        1&#46;1276039539
20060213        -0&#46;062689374
20060214        0&#46;4621014114
20060215        0&#46;3858843608
20060216        -1&#46;956824726
20060217        -0&#46;117569939
20060220        0&#46;019478319
20060221        1&#46;7239146455
20060222        -0&#46;208924662
20060223        0&#46;4683537969
20060224        0&#46;8360308677
20060227        0&#46;1868981976
20060228        0&#46;56787077
20060301        0&#46;4841735819
20060302        -1&#46;879772545
20060303        0&#46;2971227877
20060306        -0&#46;188407953
20060307        -2&#46;172851158
20060308        -0&#46;436694693
20060309        -0&#46;545698754
20060310        0&#46;4444268571
20060313        0&#46;8602492268
20060314        -0&#46;13413395
20060315        1&#46;0268214284
20060316        -0&#46;194002885
20060317        -0&#46;324650857
20060320        1&#46;3217451794
20060321        0&#46;204079017
20060322        0&#46;4164293402
20060323        0&#46;0449283947
20060324        -0&#46;65020293
20060327        0&#46;4076900595
20060328        0&#46;3287897563
20060329        0&#46;9687273566
20060330        -0&#46;834661915
20060331        0&#46;3433401041
20060403        1&#46;5571408615
20060404        1&#46;0583568612
20060405        0&#46;6639742608
20060406        -0&#46;198712533
20060407        0&#46;061600337
20060410        1&#46;3841653527
20060411        0&#46;4183897165
20060412        -0&#46;445133227
20060413        -2&#46;151734681
20060414        2&#46;143789698
20060417        1&#46;0084257658
20060418        0&#46;6424115859
20060419        0&#46;6896034372
20060420        -0&#46;477270134
20060421        1&#46;8197213455
20060424        0&#46;0468724012
20060425        -0&#46;462081369
20060426        1&#46;4526530752
20060427        -0&#46;272003472
20060428        1&#46;8671989015
20060508        3&#46;8338906771
20060509        2&#46;3810331997
20060510        1&#46;1335566726
20060511        -0&#46;735472953
20060512        3&#46;7863990558
20060515        3&#46;9222433549
20060516        -1&#46;738320025
20060517        0&#46;2116512309
20060518        -0&#46;560828422
20060519        2&#46;716370368
20060522        0&#46;3143065285
20060523        -3&#46;885086801
20060524        -0&#46;81594808
20060525        -0&#46;024283955
20060526        1&#46;5548833736
20060529        2&#46;668323362
20060530        0&#46;5935746791
20060531        -0&#46;916517062
20060601        2&#46;6565276555
20060602        -0&#46;924761869
20060605        0&#46;6928857008
20060606        -0&#46;334529687
20060607        -5&#46;53157288
20060608        0&#46;5694727614
20060609        -2&#46;566452908
20060612        0&#46;4869635644
20060613        0&#46;1038602751
20060614        -1&#46;24409705
20060615        0&#46;1466835864
20060616        2&#46;4712376268
20060619        1&#46;1052643458
20060620        0&#46;3606645112
20060621        -0&#46;261417503
20060622        0&#46;0279119867
20060623        0&#46;4541278528
20060626        1&#46;5967998692
20060627        0&#46;0032141822
20060628        0&#46;0707772988
20060629        2&#46;1637121323
20060630        -0&#46;012587721
20060703        1&#46;837091241
20060704        -0&#46;561858921
20060705        -1&#46;574826961
20060706        1&#46;9284265627
20060707        -0&#46;524488149
20060710        0&#46;0464035678
20060711        0&#46;5326184065
20060712        0&#46;0823610621
20060713        -5&#46;268827617
20060714        0&#46;859921254
20060717        1&#46;0462268275
20060718        -0&#46;197727325
20060719        -2&#46;583491553
20060720        0&#46;5547293627
20060721        0&#46;8669970761
20060724        0&#46;0649939393
20060725        1&#46;2249862789
20060726        -0&#46;067046744
20060727        -0&#46;919151516
20060728        -0&#46;913742098
20060731        -3&#46;26617964
20060801        -0&#46;984740393
20060802        -0&#46;463642882
20060803        -0&#46;270969544
20060804        -2&#46;199121588
20060807        -1&#46;245619914
20060808        1&#46;9899187365
20060809        0&#46;0104782056
20060810        1&#46;6998644819
20060811        0&#46;1709560149
20060814        -2&#46;230633206
20060815        1&#46;6541018204
20060816        1&#46;2282257836
20060817        -1&#46;00417954
20060818        -0&#46;173763441
20060821        0&#46;197845719
20060822        1&#46;1238691244
20060823        0&#46;1537550847
20060824        0&#46;7217752179
20060825        0&#46;081274578
20060828        2&#46;2050077667
20060829        0&#46;1747312271
20060830        0&#46;1727809171
20060831        0&#46;1981122157
20060901        -1&#46;593545119
20060904        1&#46;4830684957
20060905        0&#46;4330634464
20060906        0&#46;5498723581
20060907        -1&#46;237433065
20060908        0&#46;3700204555
20060911        0&#46;336841702
20060912        0&#46;687769294
20060913        -0&#46;374651811
20060914        0&#46;1215506381
20060915        1&#46;832115565
20060918        0&#46;7018857673
20060919        0&#46;3545352515
20060920        -0&#46;14263891
20060921        0&#46;7417651444
20060922        -1&#46;06138823
20060925        -0&#46;270417988
20060926        -1&#46;139408693
20060927        1&#46;0397362306
20060928        1&#46;2800792352
20060929        1&#46;1659474925
20061009        2&#46;5372650294
20061010        0&#46;1269089899
20061011        -0&#46;100066711
20061012        -0&#46;649564426
20061013        0&#46;2077480001
20061016        -1&#46;110396692
20061017        -0&#46;407586913
20061018        1&#46;6534241826
20061019        0&#46;1321722381
20061020        0&#46;1420281568
20061023        -2&#46;118942689
20061024        2&#46;3547074648
20061025        0&#46;4055990057
20061026        0&#46;6738794593
20061027        -1&#46;239169291
20061030        0&#46;8180603799
20061031        1&#46;3671162076
20061101        1&#46;360566452
20061102        -0&#46;065074898
20061103        0&#46;60133524
20061106        1&#46;6173962521
20061107        0&#46;6797606921
20061108        -1&#46;275101603
20061109        1&#46;9151299076
20061110        -0&#46;977809475
20061113        -1&#46;663134782
20061114        1&#46;1848107207
20061115        2&#46;4157589938
20061116        -0&#46;171506051
20061117        1&#46;7830150244
20061120        2&#46;2603861051
20061121        1&#46;2470390525
20061122        0&#46;5632784733
20061123        0&#46;9262794839
20061124        0&#46;0010515966
20061127        0&#46;7203334578
20061128        -0&#46;65306252
20061129        1&#46;2098834839
20061130        2&#46;6506888254
20061201        0&#46;7366601404
20061204        3&#46;2622450388
20061205        0&#46;7366242217
20061206        -0&#46;685138852
20061207        -0&#46;101328938
20061208        -3&#46;772189617
20061211        4&#46;562865463
20061212        0&#46;9901924053
20061213        0&#46;1228094172
20061214        1&#46;9148053194
20061215        1&#46;5736343909
20061218        2&#46;4040158065
20061219        0&#46;2911689947
20061220        0&#46;5331865501
20061221        -1&#46;425335642
20061222        -0&#46;482883371
20061225        2&#46;5169055578
20061226        0&#46;1919495941
20061227        2&#46;6630852211
20061228        0&#46;0108119568
20061229        3&#46;3561053211
20070104        1&#46;4112270748
20070105        0&#46;0612724836
20070108        2&#46;8173402045
20070109        3&#46;4307023985
20070110        2&#46;0799024135
20070111        -1&#46;622573214
20070112        -3&#46;040192886
20070115        4&#46;9355219594
20070116        2&#46;1173661798
20070117        -1&#46;867792158
20070118        -0&#46;098456004
20070119        3&#46;2617980787
20070122        4&#46;1096323092
20070123        0&#46;9256757785
20070124        1&#46;5819909061
20070125        -2&#46;790058126
20070126        2&#46;6854689689
20070129        2&#46;7561400686
20070130        -1&#46;049082815
20070131        -6&#46;395616091
20070201        0&#46;2072385665
20070202        -4&#46;234928345
20070205        -1&#46;752509883
20070206        2&#46;3103419593
20070207        2&#46;3305951358
20070208        1&#46;5237240431
20070209        -0&#46;560432366
20070212        3&#46;6572283023
20070213        1&#46;4488748752
20070214        2&#46;6187133283
20070215        2&#46;945718904
20070216        0&#46;2146698106
20070226        1&#46;2457485065
20070227        -9&#46;29197873
20070228        3&#46;5293694653
20070301        -2&#46;799237134
20070302        1&#46;4582886391
20070305        -1&#46;577733878
20070306        2&#46;0511507006
20070307        2&#46;7726405988
20070308        1&#46;3613915853
20070309        -0&#46;345047207
20070312        0&#46;1236492415
20070313        0&#46;653462382
20070314        -1&#46;90544313
20070315        1&#46;7135738953
20070316        -1&#46;724370144
20070319        2&#46;6153085869
20070320        0&#46;3309209281
20070321        0&#46;9532479432
20070322        0&#46;437678494
20070323        -0&#46;042223379
20070326        1&#46;7156700682
20070327        0&#46;6928660174
20070328        1&#46;0665056996
20070329        -0&#46;138356745
20070330        -0&#46;192401683
20070402        2&#46;4465762747
20070403        1&#46;0980797606
20070404        0&#46;5448922703
20070405        1&#46;0795090151
20070406        0&#46;5439001965
20070409        2&#46;1325628512
20070410        1&#46;4012113629
20070411        1&#46;2838199108
20070412        1&#46;5964746739
20070413        -0&#46;642243043
20070416        2&#46;7343644474
20070417        0&#46;5316358844
20070418        0&#46;0973107487
20070419        -4&#46;443249902
20070420        4&#46;3671793352
20070423        4&#46;2204183112
20070424        0&#46;5073800954
20070425        0&#46;3197372022
20070426        1&#46;1357328656
20070427        -0&#46;5536339
20070430        2&#46;7310480099
20070508        3&#46;1498550965
20070509        0&#46;4179616838
20070510        0&#46;6419629915
20070511        -0&#46;765615179
20070514        0&#46;5996468506
20070515        -3&#46;824876771
20070516        2&#46;6633697876
20070517        1&#46;9204730552
20070518        -0&#46;391613694
20070521        1&#46;110186689
20070522        0&#46;8657628431
20070523        1&#46;6154528882
20070524        -0&#46;53319919
20070525        1&#46;4613203872
20070528        2&#46;2053918574
20070529        2&#46;2708478959
20070530        -6&#46;830324381
20070531        1&#46;6107272308
20070601        -2&#46;522388577
20070604        -7&#46;698817258
20070605        3&#46;3204548614
20070606        0&#46;8126860049
20070607        3&#46;2822496315
20070608        0&#46;6679246502
20070611        2&#46;4416641436
20070612        2&#46;484993294
20070613        1&#46;9949731793
20070614        -1&#46;125329232
20070615        0&#46;7282613453
20070618        3&#46;2112911501
20070619        0&#46;3250310622
20070620        -2&#46;452898269
20070621        1&#46;2917660378
20070622        -2&#46;961280373
20070625        -3&#46;912227048
20070626        1&#46;2900320215
20070627        2&#46;884929469
20070628        -3&#46;941136926
20070629        -2&#46;509202354
20070702        -0&#46;044646171
20070703        1&#46;7055532511
20070704        -2&#46;374069545
20070705        -5&#46;217643315
20070706        4&#46;6579582996
20070709        2&#46;8224665659
20070710        -0&#46;900167969
20070711        0&#46;2150303333
20070712        0&#46;8185306025
20070713        0&#46;1306240624
20070716        -3&#46;007855883
20070717        2&#46;3449470337
20070718        0&#46;6930006263
20070719        -0&#46;090050197
20070720        4&#46;3382538243
20070723        4&#46;3891586392
20070724        0&#46;1072481996
20070725        2&#46;5068230492
20070726        0&#46;8734303938
20070727        0&#46;0048296174
20070730        2&#46;2294710709
20070731        1&#46;0591778709
20070801        -3&#46;976414224
20070802        2&#46;8927914307
20070803        3&#46;8232939474
20070806        2&#46;2798007618
20070807        0&#46;5502113472
20070808        -0&#46;92283389
20070809        2&#46;374997263
20070810        -0&#46;50991748
20070813        0&#46;305941253
20070814        1&#46;5150632324
20070815        0&#46;2571472621
20070816        -1&#46;787662488
20070817        -2&#46;156207232
20070820        5&#46;8893922066
20070821        1&#46;8199210038
20070822        1&#46;2985838189
20070823        1&#46;6470420225
20070824        1&#46;8148749661
20070827        0&#46;4466816552
20070828        0&#46;2692903597
20070829        -1&#46;292205771
20070830        1&#46;1712205179
20070831        1&#46;0000965332
20070903        2&#46;3499863686
20070904        -1&#46;145747545
20070905        0&#46;0304264183
20070906        1&#46;059908561
20070907        -2&#46;290470418
20070910        1&#46;6265751508
20070911        -4&#46;588651113
20070912        1&#46;4541306166
20070913        2&#46;6820748779
20070914        0&#46;736870787
20070917        1&#46;9226250909
20070918        -0&#46;288885886
20070919        -1&#46;018562371
20070920        1&#46;5040144053
20070921        -0&#46;543261485
20070924        0&#46;709256124
20070925        -1&#46;186959912
20070926        -1&#46;633780176
20070927        1&#46;0567241248
20070928        2&#46;77124394
20071008        1&#46;4629547087
20071009        0&#46;3283874269
20071010        0&#46;2967856802
20071011        1&#46;8905812105
20071012        -0&#46;171953953
20071015        2&#46;049867378
20071016        0&#46;8982208174
20071017        -1&#46;019248286
20071018        -3&#46;71246064
20071019        -0&#46;188878793
20071022        -2&#46;506297132
20071023        1&#46;3692956933
20071024        1&#46;1074072471
20071025        -4&#46;639814302
20071026        1&#46;0698710825
20071029        2&#46;1800711807
20071030        1&#46;7000169367
20071031        1&#46;2760941433
20071101        -1&#46;002604589
20071102        -1&#46;956631424
20071105        -2&#46;291548525
20071106        -1&#46;160904315
20071107        0&#46;6634904919
20071108        -5&#46;130932817
20071109        -0&#46;807868172
20071112        -1&#46;194254506
20071113        -0&#46;637924416
20071114        4&#46;374640794
20071115        -1&#46;194753232
20071116        -1&#46;351708999
20071119        -0&#46;444852013
20071120        1&#46;3353006318
20071121        -1&#46;473562978
20071122        -4&#46;375237211
20071123        1&#46;8092567098
20071126        -1&#46;205244896
20071127        -1&#46;842650821
20071128        -1&#46;088997487
20071129        4&#46;4455275608
20071130        -2&#46;282352181
20071203        0&#46;7343204211
20071204        1&#46;1672588554
20071205        2&#46;7548601492
20071206        0&#46;1428749025
20071207        1&#46;3880674683
20071210        1&#46;6374762073
20071211        0&#46;0750319221
20071212        -1&#46;45562698
20071213        -3&#46;590166438
20071214        1&#46;7442704463
20071217        -2&#46;783388696
20071218        -0&#46;586056849
20071219        2&#46;5879342622
20071220        1&#46;9993252972
20071221        1&#46;2149600578
20071224        2&#46;1866281044
20071225        0&#46;0333366222
20071226        0&#46;7420044401
20071227        2&#46;0207526726
20071228        -0&#46;536832789
20080102        0&#46;6372844215
20080103        0&#46;5019258166
20080104        1&#46;0916858311
20080107        1&#46;2083183344
20080108        -0&#46;27163052
20080109        1&#46;3095596116
20080110        0&#46;7957359371
20080111        0&#46;7245891663
20080114        0&#46;500627157
20080115        -0&#46;79763906
20080116        -3&#46;284211509
20080117        -2&#46;490347466
20080118        0&#46;7456891475
20080121        -4&#46;928573814
20080122        -7&#46;726398022
20080123        4&#46;3267798048
20080124        0&#46;7484605261
20080125        1&#46;1667258479
20080128        -6&#46;919471336
20080129        0&#46;6992829868
20080130        -1&#46;518258793
20080131        -1&#46;85259273
20080201        -0&#46;992862541
20080204        8&#46;3586180991
20080205        -0&#46;614385952
20080213        -2&#46;310198949
20080214        1&#46;3340186501
20080215        -1&#46;525079184
20080218        1&#46;8787164473
20080219        2&#46;2244778412
20080220        -2&#46;332301095
20080221        -0&#46;900960987
20080222        -3&#46;803013793
20080225        -3&#46;827306465
20080226        0&#46;4355687398
20080227        2&#46;71650316
20080228        -0&#46;481028758
20080229        1&#46;190651219
20080303        2&#46;4887466379
20080304        -2&#46;678278922
20080305        -0&#46;85344222
20080306        1&#46;4952478693
20080307        -1&#46;484358582
20080310        -3&#46;947760983
20080311        0&#46;4747951586
20080312        &#46;
20080313        &#46;
20080314        &#46;
20080317        &#46;
20080318        &#46;
20080319        &#46;
;
run;[/code:shob4dxw]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2008-4-11 13:57:56 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

to shiyiming,
  还有个建议,这样的lookup技术推荐使用hash object来做,执行又快,程序又简单。本论坛有不少例子的。


请问施版主:
hash  object是什么?没有听说过呀,不要见笑 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2008-4-11 14:40:18 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

[code:1zkimpxc]if _N_=1 then Car=ret-(&amp;nextalpha + &amp;nextbeta*indexret); [/code:1zkimpxc]
&amp;nextalpha 与 &amp;nextbeta 解析的结果是空
[quote:1zkimpxc]MLOGIC(CALCU):  %PUT **********: &amp;nextalpha
**********:[/quote:1zkimpxc]
原因是数据集coefout为0个观测
[code:1zkimpxc]data _null_;
set coefout;
call symput('nextalpha',intercept);
call symput('nextbeta',indexret);
run; [/code:1zkimpxc]
再追溯就是
[quote:1zkimpxc]MPRINT(CALCU):   proc reg noprint data=betaboth outest=Coefout;
MPRINT(CALCU):   model ret=indexret;
MPRINT(CALCU):   quit;

ERROR: No valid observations are found.
NOTE: The data set WORK.COEFOUT has 0 observations and 7 variables.
NOTE: PROCEDURE REG used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds[/quote:1zkimpxc]
程序中只有错误
[code:1zkimpxc]where tradedate=&quot;&amp;&amp;eventdate&amp;i&quot;;[/code:1zkimpxc]
[code:1zkimpxc]where tradedate=&quot;&amp;eventdate&quot;; [/code:1zkimpxc]
宏传递肯定没有错误,可能是数据错误

hash object参考可在论坛里自己搜索,只列一个经典的
<!-- l --><a class="postlink-local" href="http://www.mysas.net/forum/viewtopic.php?f=4&amp;t=3573#p11606">viewtopic.php?f=4&amp;t=3573#p11606</a><!-- l -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2008-4-11 18:26:26 | 只看该作者

Re: 大家能不能帮看看宏程序问题出在哪里?

首先声明:本人lili83xu与edle素不相识,只是出于对sas感兴趣,就看了下edle的问题,顺着底下的超链接,把test数据贴出来。
对于edle的问题,看了下,疑惑有三:
1. 在macro main中调用了macro calcu,如下
[quote:eai2i0c4]%calcu(&amp;&amp;eventzqdm&amp;i,&amp;&amp;eventdate&amp;i) [/quote:eai2i0c4]回到calcu,可见[quote:eai2i0c4]%macro calcu(eventzqdm,eventdate)[/quote:eai2i0c4]即在第一次循环中把(600000,20070514)传递给(&amp;eventzqdm,&amp;eventdate)。而在%macro calcu()下面[quote:eai2i0c4]if zqdm ^=&amp;eventzqdm&amp;i then delete; /*判断eventzqdm并删除无关数据*/
[/quote:eai2i0c4],这里&amp;eventzqdm&amp;i显然被理解为6000001。注意到test中zqdm的值为600000与600001,因此在sas log中就出现了[quote:eai2i0c4]NOTE: 数据集 WORK.TEST1 有 0 个观测和 4 个变量[/quote:eai2i0c4]。
2. 对于[quote:eai2i0c4]
13 proc sql noprint;
14 select obs into:num from test1
15 where tradedate=&amp;eventdate&amp;i; /*判断eventdate*/
16 quit;
[/quote:eai2i0c4]
为什么sas log中会出现
[quote:eai2i0c4]ERROR: 用 等于 (=) 的表达式具有不同数据类型的组件。
NOTE: SAS 系统由于错误而停止了该步的处理。
[/quote:eai2i0c4]
但如果将其改为where tradedate='20070514';就对了。这个问题想请教高手。:)
3. [quote:eai2i0c4]
54 data eventfirm;
55 set test1;
56 where %eval(&amp;num-30)&lt;=obs&lt;=%eval(&amp;num-11);
57 run;
58
59 data event_mkt;
60 set index1;
61 where %eval(&amp;num-30)&lt;=obs&lt;=%eval(&amp;num-11);
62 run;
[/quote:eai2i0c4]
这两处的&amp;num真的是同一个吗?如果是的话,在第二次循环中eventfirm的observations为0。

下面将code改了下,不知是否合你意?(假设所用数据已保存在work里)
[code:eai2i0c4]
%macro calcu(eventzqdm,eventdate);                                                                                                      
data test1;                                                                                                                             
set test;                                                                                                                           
if zqdm=&amp;eventzqdm;                                                                                                                     
obs=_n_;                                                                                                                                
run;                                                                                                                                    
                                                                                                                                       
data test2;                                                                                                                             
set test1;                                                                                                                              
if tradedate=&amp;eventdate;                                                                                                               
run;                                                                                                                                    
                                                                                                                                       
proc sql noprint;                                                                                                                       
select obs into &#58;num1                                                                                                                    
from test2                                                                                                                              
;                                                                                                                                       
quit;                                                                                                                                   
                                                                                                                                       
data betafirm;                                                                                                                          
set test1;                                                                                                                              
where %eval(&amp;num1-10)&lt;=obs&lt;=%eval(&amp;num1+10);                                                                                             
run;                                                                                                                                    
                                                                                                                                       
data index1;                                                                                                                           
set index;                                                                                                                              
obs=_n_;                                                                                                                                
run;                                                                                                                                    
                                                                                                                                       
data index2;                                                                                                                           
set index1;                                                                                                                             
if  tradedate=&amp;eventdate;                                                                                                               
run;                                                                                                                                    
                                                                                                                                       
proc sql noprint;                                                                                                                       
select obs into&#58;num2                                                                                                                     
from index2                                                                                                                             
quit;                                                                                                                                   
                                                                                                                                       
data beta_mkt;                                                                                                                          
set index1;                                                                                                                             
where %eval(&amp;num2-10)&lt;=obs&lt;=%eval(&amp;num2+10);                                                                                             
run;                                                                                                                                    
                                                                                                                                       
data betaboth;                                                                                                                          
merge betafirm beta_mkt;                                                                                                               
run;                                                                                                                                    
                                                                                                                                       
proc reg noprint data=betaboth outest=Coefout;                                                                                          
model ret=indexret;                                                                                                                     
quit;                                                                                                                                   
data _null_;                                                                                                                           
set coefout;                                                                                                                           
call symput('nextalpha',intercept);                                                                                                     
call symput('nextbeta',indexret);                                                                                                      
run;                                                                                                                                    
                                                                                                                                       
data eventfirm;                                                                                                                        
set test1;                                                                                                                              
where %eval(&amp;num1-30)&lt;=obs&lt;=%eval(&amp;num1-11);                                                                                             
run;                                                                                                                                    
                                                                                                                                       
data event_mkt;                                                                                                                        
set index1;                                                                                                                             
where %eval(&amp;num2-30)&lt;=obs&lt;=%eval(&amp;num2-11);                                                                                             
run;                                                                                                                                    
                                                                                                                                       
data Car_calc;                                                                                                                          
merge eventfirm event_mkt;                                                                                                              
by tradedate;                                                                                                                           
if _N_=1 then Car=ret-(&amp;nextalpha + &amp;nextbeta*indexret);                                                                                
else car =ret-(&amp;nextalpha + &amp;nextbeta*indexret)+holdcar;                                                                                
holdcar=car;                                                                                                                           
retain holdcar;                                                                                                                        
alpha=&amp;nextalpha;                                                                                                                       
beta=&amp;nextbeta;                                                                                                                        
run;                                                                                                                                    
                                                                                                                                       
proc append base= Cars data=Car_calc(drop=holdcar);                                                                                    
run;                                                                                                                                   
                                                                                                                                       
%mend calcu;                                                                                                                           
                                                                                                                                       
%macro main;                                                                                                                           
%global num nextalpha nextbeta betanobs;                                                                                                
data _null_;                                                                                                                           
set sh180parame end=last;                                                                                                            
call symput (('eventzqdm'||compress(_n_)),zqdm);                                                                                       
call symput(('eventdate'||compress(_n_)),ltdate);                                                                                       
if last then call symput('num',_n_);                                                                                                   
run;                                                                                                                                    
%do i=1 %to &amp;num;                                                                                                                              
%calcu(&amp;&amp;eventzqdm&amp;i,&amp;&amp;eventdate&amp;i);                                                                                                   
%end;                                                                                                                                       
%mend main;                                                                                                                             
                                                                                                                                       
%main;                                                                                                                          
[/code:eai2i0c4]
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 18:10 , Processed in 0.074324 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表