楼主: jeffic
2726 3

请问:SAS中怎样使数据滞后一年 [推广有奖]

  • 1关注
  • 11粉丝

已卖:495份资源

博士生

96%

还不是VIP/贵宾

-

威望
0
论坛币
1649 个
通用积分
2.0435
学术水平
7 点
热心指数
9 点
信用等级
4 点
经验
9504 点
帖子
268
精华
0
在线时间
423 小时
注册时间
2009-1-19
最后登录
2021-12-24

楼主
jeffic 在职认证  发表于 2013-4-11 16:55:51 |AI写论文
3论坛币
现有的数据结构如下:

id  year  variable
1  1994  a
1  1995  b
1  1996  c
......
2  1995  d
2  1996  f
......

如何让每一个id的variable滞后一年,即:
id  year  variable
1  1994  .
1  1995  a
1  1996  b
......
2  1995  .
2  1996  d
......

初学SAS 请详细指导 谢谢~~

关键词:Variable 初学sas ABLE year 数据结构 数据

沙发
henryyhl 发表于 2013-4-11 17:28:07
data have;
input id  year  var $;
cards;
1  1994  a
1  1995  b
1  1996  c
2  1995  d
2  1995  d
2  1996  f
;
run;
data wanted;
set have;
by id;
var=lag(var);
if first.id then var='';
run;
proc print;
run;
It's not going to be easy, but it is going to be worth it.

藤椅
tj0412ymy 发表于 2013-4-11 17:42:26
  1. data have;
  2. input id  year  var $;
  3. cards;
  4. 1  1994  a
  5. 1  1995  b
  6. 1  1996  c
  7. 2  1995  d
  8. 2  1996  d
  9. 2  1997  f
  10. ;
  11. run;

  12. proc sql;
  13. select a.id,a.year,b.var
  14. from have a
  15. left join have b
  16. on a.id=b.id and a.year-b.year=1
  17. order by a.id,a.year
  18. ;
  19. quit;
复制代码
对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

板凳
liufengyang21 发表于 2020-11-8 16:24:24
tj0412ymy 发表于 2013-4-11 17:42
select a.id,a.year,b.var
这是什么意思?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-24 21:29