全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2086 4
2011-11-15
各位大虾,
我的数据集有如下字段
ratio   id
1        1
1        1
1        1
1.2     1
1        1
1        2
1        2
1        2
1.5     2
1        2
1.2        2

我现在希望算出这样的结果,同一个id中的各行ratio值连乘,结果放在cratio里,即
ratio id   cratio
1      1      1
1      1      1
1      1      1
1.2   1      1.2
1      1       1.2
1      2       1
1      2        1
1      2       1
1.5   2        1.5
1      2        1.5
1.2    2        1.8
请问用SAS如何实现以上功能?谢谢哈
二维码

扫码加我 拉你入群

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

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

全部回复
2011-11-15 13:08:13
看看
二维码

扫码加我 拉你入群

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

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

2011-11-15 14:13:02
没人能解答吗?急啊
二维码

扫码加我 拉你入群

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

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

2011-11-15 14:46:59
data a;
input ratio   id;
cards;
1        1
1        1
1        1
1.2     1
1        1
1        2
1        2
1        2
1.5     2
1        2
1.2        2
;
run;
data b;
        retain ratio id cratio 1;
        set a;
                by id;
                if first.id then cratio=ratio;
        else cratio=ratio*cratio;
run;
二维码

扫码加我 拉你入群

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

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

2011-11-15 15:23:11
呵呵,谢谢哈。我还以为没人回答,后来自己想了办法
data a1;  retain cratio 1; set a0;
  if id^=lag(id) then cratio=1;
  cratio=cratio*ratio;
  keep id dateid ratio cratio;
run;

大虾yugao1986请看看对不对
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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