全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2299 1
2014-03-21
[/table]

[table=216]
请问用sas如何生成一列b等于滚动三年roa的标准差?
谢谢各位了!!!

StkcdAccperroa
0000012013-03-31

0.002605

0000012012-12-31

0.010925

0000012012-09-30

0.009077

0000012012-06-30

0.005956

0000012012-03-31

0.003273

0000012011-12-31

0.010537

0000012011-09-30

0.008221

0000012011-06-30

0.007119

0000012011-03-31

0.0038

0000012010-12-31

0.010992

0000012010-09-30

0.008909

0000012010-06-30

0.006201

0000012010-03-31

0.003221

0000012009-12-31

0.010532

0000012009-09-30

0.008192

0000012009-06-30

0.005413

0000012009-03-31

0.002907

0000012008-12-31

0.001671

0000012008-09-30

0.009774

0000012008-06-30

0.006395

0000012008-03-31

0.003368

0000012007-12-31

0.010699

0000012007-09-30

0.008173

0000012007-06-30

0.005381

0000012007-03-31

0.002855

0000012006-12-31

0.007654

0000012006-09-30

0.005882

0000012006-06-30

0.003131

0000012006-03-31

0.001448

0000012005-12-31

0.002786

0000012005-09-30

0.002767

0000012005-06-30

0.001758

0000012005-03-31

0.001321

0000012004-12-31

0.002404

0000012004-09-30

0.002472

0000012004-06-30

0.001698

0000012004-03-31

0.001012

0000012003-12-31

0.001835

0000012003-09-30

0.002177

0000012003-06-30

0.001963

0000012003-03-31

0.001007

0000012002-12-31

0.003831

0000012002-09-30

0.003429

0000012002-06-30

0.002866

0000012002-03-31

0.002039

0000012001-12-31

0.004653

0000012001-06-30

0.003104

0000012000-12-31

0.008133

0000012000-06-30

0.004036

0000011999-12-31

0.013223

0000011999-06-30

0.007142

0000011998-12-31

0.021752

0000011998-06-30

0.012499

0000022013-03-31

0.006448

0000022012-12-31

0.057642

0000022012-09-30

0.025408

0000022012-06-30

0.019589

0000022012-03-31

0.007046

0000022011-12-31

0.055082

0000022011-09-30

0.020639

0000022011-06-30

0.017794

0000022011-03-31

0.007749

0000022010-12-31

0.057712

0000022010-09-30

0.02852

0000022010-06-30

0.027471

0000022010-03-31

0.011167


二维码

扫码加我 拉你入群

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

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

全部回复
2015-1-21 22:34:45
给你个例子
有如下的表格

data have;
input id $ num;
datalines;
a 1
a 2
a 4
a 3
b 2
b 3
b 9
;
run;

每个id的数据都是按日期排好序的,为方便就不列日期了。我要得到的是每个id,自初始第一个观测开始至当前观测的平均值和标准差,即得到如下的结果:

id   num   mean                              std
a    1          1                               #DIV/0!
a    2          1.5                            0.707106781
a    4          2.333333333            1.527525232
a    3          2.5                            1.290994449
b    2          2                              #DIV/0!
b    3          2.5                           0.707106781
b    9          4.666666667           3.785938897

关于标准差计算可使用
data have;
input id $ num;
datalines;
a 1
a 2
a 4
a 3
b 2
b 3
b 9
;

data have(drop=num2 sum1 sum2 pre);
        
        set have;
        num2=num*num;

        retain sum1 sum2 pre 0 ;
               
        if (lag(id)^=id) then do;
              sum1=0;
              sum2=0;
              pre=_n_-1;
        end;
        
        sum1=sum1+num;
        sum2=sum2+num2;

        if (lag(id)^=id) then mean=sum1;
        else mean=sum1/(_n_-pre);

        if ((lag(id)=id) & (_n_>1)) then do;
             std=sqrt((sum2-sum1*sum1/(_n_-pre))/(_n_-pre-1));
        end;
        
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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