全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4524 4
2008-10-22

请教各位sas达人,依不同的sas日期来分别计算每段时间的报酬的程序该怎么表示?

公司   sas日期 sas时间 成交价   报酬率
1102   15614   32400   9               .
1102   15614   32481   9            =(9-9)/9
1102   15614   32681   8.85       =(8.85-9)/9
1102   15614   33041   9.05       =(9.05-8.85)/9.05
1102   15614   33121   9            =(9-9.05)/9
1102   15614   33201   9           
1102   15614   33241   9   
1102   15614   33441   9   
1102   15614   33561   9.05   
1102   15614   34002   9.05   
1102   15615   32400   9.3             .
1102   15615   32483   9.3         =(9.3-9.3)/9.3
1102   15615   32522   9.3   
1102   15615   32642   9.25   
1102   15615   32762   9.25   
1102   15615   32802   9.3   
1102   15615   32842   9.3   
1102   15615   32962   9.3   
1102   15615   33042   9.35   
1102   15615   33122   9.35   
1102   15616   32400   9.1   
1102   15616   32521   9.05   
1102   15616   32601   9.05   
1102   15616   32681   9   
1102   15616   32721   9   
1102   15616   32801   8.95   
1102   15616   32921   8.9   
1102   15616   33001   8.95   
1102   15616   33161   8.9   
1102   15616   33281   8.9   
1102   15617   32400   8.9   
1102   15617   32481   8.9   
1102   15617   32521   8.9   
1102   15617   32601   8.85   
1102   15617   32841   8.9   
1102   15617   32961   8.9   
1102   15617   33121   8.9   
1102   15617   33161   8.9   
1102   15617   33241   8.9   
1102   15617   33361   8.9   

二维码

扫码加我 拉你入群

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

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

全部回复
2008-10-23 23:03:00
二维码

扫码加我 拉你入群

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

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

2009-1-23 17:01:00

data test;
 input nbr date time price;
 datalines;
1102   15614   32400   9             
1102   15614   32481   9          
1102   15614   32681   8.85      
1102   15614   33041   9.05     
1102   15614   33121   9        
1102   15614   33201   9           
1102   15614   33241   9  
1102   15614   33441   9  
1102   15614   33561   9.05  
1102   15614   34002   9.05  
1102   15615   32400   9.3          
1102   15615   32483   9.3        
1102   15615   32522   9.3  
1102   15615   32642   9.25  
1102   15615   32762   9.25  
1102   15615   32802   9.3  
1102   15615   32842   9.3  
1102   15615   32962   9.3  
1102   15615   33042   9.35  
1102   15615   33122   9.35  
1102   15616   32400   9.1  
1102   15616   32521   9.05  
1102   15616   32601   9.05  
1102   15616   32681   9  
1102   15616   32721   9  
1102   15616   32801   8.95  
1102   15616   32921   8.9  
1102   15616   33001   8.95  
1102   15616   33161   8.9  
1102   15616   33281   8.9  
1102   15617   32400   8.9  
1102   15617   32481   8.9  
1102   15617   32521   8.9  
1102   15617   32601   8.85  
1102   15617   32841   8.9  
1102   15617   32961   8.9  
1102   15617   33121   8.9  
1102   15617   33161   8.9  
1102   15617   33241   8.9  
1102   15617   33361   8.9
;
run;

proc sort data=test;
 by nbr date time;
run;

data result;
 set test;
 by nbr date;
 retain pre_row now_row .;
 pre_row=lag(price);
 if first.date then
 do;
  pre_row=.;
  now_row=price;
  rate='('||strip(now_row)||'-'||strip(pre_row)||') /' ||strip(now_row);
 end;
 else
 do;
  now_row=price;
  rate='('||strip(now_row)||'-'||strip(pre_row)||') /' ||strip(now_row);
 end;
run;

proc print;
run;

 Obs     nbr     date     time    price    pre_row    now_row    rate

                                              1    1102    15614    32400     9.00       .         9.00     (9-.) /9
                                              2    1102    15614    32481     9.00      9.00       9.00     (9-9) /9
                                              3    1102    15614    32681     8.85      9.00       8.85     (8.85-9) /8.85
                                              4    1102    15614    33041     9.05      8.85       9.05     (9.05-8.85) /9.05
                                              5    1102    15614    33121     9.00      9.05       9.00     (9-9.05) /9
                                              6    1102    15614    33201     9.00      9.00       9.00     (9-9) /9
                                              7    1102    15614    33241     9.00      9.00       9.00     (9-9) /9
                                              8    1102    15614    33441     9.00      9.00       9.00     (9-9) /9
                                              9    1102    15614    33561     9.05      9.00       9.05     (9.05-9) /9.05
                                             10    1102    15614    34002     9.05      9.05       9.05     (9.05-9.05) /9.05
                                             11    1102    15615    32400     9.30       .         9.30     (9.3-.) /9.3
                                             12    1102    15615    32483     9.30      9.30       9.30     (9.3-9.3) /9.3
                                             13    1102    15615    32522     9.30      9.30       9.30     (9.3-9.3) /9.3
                                             14    1102    15615    32642     9.25      9.30       9.25     (9.25-9.3) /9.25
                                             15    1102    15615    32762     9.25      9.25       9.25     (9.25-9.25) /9.25
                                             16    1102    15615    32802     9.30      9.25       9.30     (9.3-9.25) /9.3
                                             17    1102    15615    32842     9.30      9.30       9.30     (9.3-9.3) /9.3
                                             18    1102    15615    32962     9.30      9.30       9.30     (9.3-9.3) /9.3
                                             19    1102    15615    33042     9.35      9.30       9.35     (9.35-9.3) /9.35
                                             20    1102    15615    33122     9.35      9.35       9.35     (9.35-9.35) /9.35
                                             21    1102    15616    32400     9.10       .         9.10     (9.1-.) /9.1
                                             22    1102    15616    32521     9.05      9.10       9.05     (9.05-9.1) /9.05
                                             23    1102    15616    32601     9.05      9.05       9.05     (9.05-9.05) /9.05
                                             24    1102    15616    32681     9.00      9.05       9.00     (9-9.05) /9
                                             25    1102    15616    32721     9.00      9.00       9.00     (9-9) /9
                                             26    1102    15616    32801     8.95      9.00       8.95     (8.95-9) /8.95
                                             27    1102    15616    32921     8.90      8.95       8.90     (8.9-8.95) /8.9
                                             28    1102    15616    33001     8.95      8.90       8.95     (8.95-8.9) /8.95
                                             29    1102    15616    33161     8.90      8.95       8.90     (8.9-8.95) /8.9
                                             30    1102    15616    33281     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             31    1102    15617    32400     8.90       .         8.90     (8.9-.) /8.9
                                             32    1102    15617    32481     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             33    1102    15617    32521     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             34    1102    15617    32601     8.85      8.90       8.85     (8.85-8.9) /8.85
                                             35    1102    15617    32841     8.90      8.85       8.90     (8.9-8.85) /8.9
                                             36    1102    15617    32961     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             37    1102    15617    33121     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             38    1102    15617    33161     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             39    1102    15617    33241     8.90      8.90       8.90     (8.9-8.9) /8.9
                                             40    1102    15617    33361     8.90      8.90       8.90     (8.9-8.9) /8.9

[此贴子已经被作者于2009-1-23 17:16:39编辑过]

二维码

扫码加我 拉你入群

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

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

2009-1-24 16:35:00
看上去就是原为与滞后一位的差再比上原位的数字。
二维码

扫码加我 拉你入群

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

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

2010-7-12 13:36:16
建议用lag函数最简单!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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