全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6289 14
2011-06-28
我有一个数据集a;a1 a2
1 0.2
2 0.3
3 0.5;


我想得到这样的结果;
a1 a2 a3
1 0.2 1
2 0.3 0.2  (=lag(a3)*lag(a2))
3 0.5 0.06;   (=lag(a3)*lag(a2))


我对sas如何处理行之间的变化还很不清楚。谢谢大家!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-6-28 10:41:52
复制代码
没用lag,觉得lag好复杂.......
二维码

扫码加我 拉你入群

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

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

2011-6-28 11:04:30
data b;
set a;
retain a3;
a3=lag(a1)*lag(a2);
if _n_=1 then a3=a1;
run;
二维码

扫码加我 拉你入群

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

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

2011-6-28 11:09:20
lag就是把上面一个observation的值赋给下一个observation。
举个简单的例子:
data a;
input a;
cards;
1
2
3
4
5
;
run;
data b;
set a;
a=lag(a);
run;
data c;
set a;
b=lag(a);
run;


2# soporaeternus
二维码

扫码加我 拉你入群

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

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

2011-6-28 11:24:32
复制代码
二维码

扫码加我 拉你入群

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

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

2011-6-28 11:26:45
顶下,相当简洁 2# soporaeternus
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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