全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1546 2
2008-06-02

我现在的问题是,我有两个数列

对应时间: 2006 2005 2004 1998 1997 1996

数列A:     a1   a2   a3   a4   a5   a6

数列B:     b1   b2   b3   b4   b5   b6

我现在想算出数列C(t)=A(t)/B(t-1)

这样的话C(2004)就是没有数值的,我应该在SAS中编写怎样的程序才能实现这个想法呢?谢谢大家

二维码

扫码加我 拉你入群

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

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

全部回复
2008-6-3 22:11:00
data a;                                                                                                                                
input t A B;                                                                                                                           
cards;                                                                                                                                 
2006 1 2                                                                                                                               
2005 2 3                                                                                                                               
2004 3 4                                                                                                                               
1998 5 6                                                                                                                               
1997 6 7                                                                                                                               
1996 7 8                                                                                                                               
;                                                                                                                                      
run;                                                                                                                                   
                                                                                                                                       
                                                                                                                                       
proc sort data=a;                                                                                                                      
 by t;                                                                                                                                 
run;                                                                                                                                   
                                                                                                                                       
                                                                                                                                       
data b (keep=t C) ;                                                                                                                    
        set a;                                                                                                                         
        lag_B=lag(B);                                                                                                                  
 if t=lag(t)+1 then do C=A/lag_B                                                                                                       
 ;end;                                                                                                                                 
run;                                                                                                                                   
                                                                                                                                       
proc print data=b;                                                                                                                     
run;                                                                                                                                   
     
二维码

扫码加我 拉你入群

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

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

2008-6-3 23:06:00

lili83xu's solution is perfect! What I added is nothing new - just to make sure C is set to missing when it is supposed to be so.

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

data b(keep=t C);
set a;
lag_B=lag(B);
if t=lag(t)+1 then C=A/lag_B;
else C=.;
run;

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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