由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教:get next record using BY group (SAS code data manipulation)
相关主题
求教 SAS数据转化请教一下R的Data Manipulation
一个简单的SAS 问题sas proc report的问题。
求助:data manipulation的一个问题请教flag问题
help:data manipulation一个sas问题的解决方法讨论
SAS help新手问个简单的sas问题
SAS code 问题急!一个简单的SAS问题,请大家帮帮解释一下!多谢!
SAS 问题求助sas问题
遇到个SAS 问题,求教how to trasform data.
相关话题的讨论汇总
话题: netp话题: py话题: 111话题: asset话题: 123
进入Statistics版参与讨论
1 (共1页)
t******o
发帖数: 70
1
data test;
input id $ yr asset netp;
datalines;
111 2012 23 11
111 2010 25 10
111 2009 39 20
111 2011 29 12
123 2008 9 4
123 2009 8 3
123 2010 7 2
;
run;
想要的结果是这样的:
id yr asset netp asset_py netp_py
111 2012 23 11 25 10
111 2011 25 10 39 20
111 2010 39 20 . .
111 2008 29 12 . .
123 2010 9 4 8 3
123 2009 8 3 7 2
123 2008 7 2 . .
解释:新产生的两列是对应previous year的值。
请教应该怎么实现,非常感谢!
j******o
发帖数: 127
2
Try expand procedure.
proc expand data=test out=obtain(drop=time);
by id;
convert asset=asset_py / transformout=(lead 1);
convert netp=netp_py / transformout=(lead 1);
run;
t******o
发帖数: 70
3
Worked well. Thanks!
I also found a less efficient solution.
proc sort data = test;
by id yr;
run;
data test1;
set test;
asset_py = lag(asset);
netp_py = lag(netp);
if first.id then do;
asset_py = . ;
netp_py = .;
end;
run;

【在 j******o 的大作中提到】
: Try expand procedure.
: proc expand data=test out=obtain(drop=time);
: by id;
: convert asset=asset_py / transformout=(lead 1);
: convert netp=netp_py / transformout=(lead 1);
: run;

l****u
发帖数: 529
4
proc sql;
create table new as
select a.*, b.asset as asset_py, b.netp as netp_py
from test a left join test b
on a.id=b.id and b.yr-a.yr=1;
quit;
x*******4
发帖数: 39
5
你这个显然有错 你要用FIRST.ID 你set的时候就要By id。 而且你这个也达不到你开
头要的结果。。。

【在 t******o 的大作中提到】
: Worked well. Thanks!
: I also found a less efficient solution.
: proc sort data = test;
: by id yr;
: run;
: data test1;
: set test;
: asset_py = lag(asset);
: netp_py = lag(netp);
: if first.id then do;

t******o
发帖数: 70
6
好像是的,忽略了yr不连续的情况 :)
luanyu兄的方法没问题。

【在 x*******4 的大作中提到】
: 你这个显然有错 你要用FIRST.ID 你set的时候就要By id。 而且你这个也达不到你开
: 头要的结果。。。

1 (共1页)
进入Statistics版参与讨论
相关主题
how to trasform data.SAS help
SAS快捷键问题SAS code 问题
ASK FOR ONE SAS QUESTIONSAS 问题求助
帮忙看个SAS base 小问题吧遇到个SAS 问题,求教
求教 SAS数据转化请教一下R的Data Manipulation
一个简单的SAS 问题sas proc report的问题。
求助:data manipulation的一个问题请教flag问题
help:data manipulation一个sas问题的解决方法讨论
相关话题的讨论汇总
话题: netp话题: py话题: 111话题: asset话题: 123