全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4758 3
2009-06-07
我有八千多個observation
每一個obs有的變數是
d0 d30 d90 d270 d360 d540 d720 d1080
y0 y30 y90 y270 y360 y540 y720 y1080

其中yi 是 在日子 di 日時量度的身高
d0 = 0 for all observation
d30 是一個接近30 的數字 , 例如27 28 32 或剛好30等
如此類推
如果我想用proc expand (或其他方法也可以)
在每一個obs 上面加上 e30 e90 e270 e360 e540 e720 e1080
ei= 在 第i天時量度的身高,
應該如何做?
謝謝
<script type="text/javascript"></script><script src="https://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><script></script>
二维码

扫码加我 拉你入群

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

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

全部回复
2009-6-7 22:11:00
楼主我不明白你在讲什么,至少把问题说清楚了
你是想用proc expand来做aggregation?
二维码

扫码加我 拉你入群

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

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

2009-6-7 23:00:00

即是用proc expand做interpolation

例如第1個obs是

0  31  92 267 359 545 733 1091

2.7 3.8 4.9 6.1 7.1 8.9 9.5 11.7

之後想用interpolation來估計出

0 30 90 270 360 540 720 1080對應的y值

二维码

扫码加我 拉你入群

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

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

2009-6-9 07:35:00
抛块砖头
1、先把数据弄成竖的(你现成的数据多半得转置一下)
data xxx(keep=id x:);
    input id $
        d0 d30 d90 d270 d360 d540 d720 d1080
        y0 y30 y90 y270 y360 y540 y720 y1080;
    array d
  • d:;
        array y
  • y:;
        do _n_=1 to dim(d);
            x1 = d[_n_];
            x2 = y[_n_];
            output xxx;
        end;
    datalines;
    0001 0 31 92 267 359 545 733 1091 2.7 3.8 4.9 6.1 7.1 8.9 9.5 11.7
    0002 0 27 89 270 363 540 718 1055 2.7 3.8 4.9 6.1 7.1 8.9 9.5 11.7
    ;
    2、把关键点位30,90,270,360,540,720,1080的身高设为缺失值
    data yyy;
        array aa[7] _temporary_ (30,90,270,360,540,720,1080);
        do until(last.id);
            set xxx(keep=id);
            by id;
        end;
        do _n_=1 to dim(aa);
            x1 = aa[_n_];
            retain x2 .;
            output;
        end;

    3、合并前两步的数据
    data zzz;
        merge yyy xxx;
        by id x1;

    4、EXPAND!
    proc expand data=zzz out=www extrapolate;
        convert x2;
        by id;
        id x1;

    5、再转置得到你想要得变量e30-e1080
    proc transpose data=www(where=(x1 in (30,90,270,360,540,720,1080))) out=www1(drop=_name_) prefix=e;
        by id;
        id x1;
        var x2;
    run;
  • 二维码

    扫码加我 拉你入群

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

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

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

    说点什么

    分享

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