楼主: liuliuqiu
864 2

[问答] SAS程序请教 [推广有奖]

  • 6关注
  • 2粉丝

副教授

62%

还不是VIP/贵宾

-

威望
0
论坛币
2340 个
通用积分
8.9561
学术水平
3 点
热心指数
5 点
信用等级
5 点
经验
14393 点
帖子
429
精华
0
在线时间
1113 小时
注册时间
2009-3-24
最后登录
2024-2-29

15论坛币
请教各位一个程序。情况如下:表中含有变量code   firm year1  year2,其中year1>year2,
想利用SAS快速生成一个非平衡面板数据。例如:
code firm   year1 year2
1       a     2006  2004
2       b     2005  2004
想要的结果是:
code  firm   year
  1       a      2004
  1       a      2005
  1       a      2006
  2       b      2004
  2       b      2005
如果可以的话,我还想加上一个变量var,对于每个code-firm,最后一年取值为1,其他年份取值为0.
例如上例中,
code  firm   year      var
  1       a      2004     0
  1       a      2005     0
  1       a      2006     1
  2       b      2004     0
  2       b      2005     1

因为数据量太大,只能利用SAS了,但程序实在不会写,恳请各位帮忙了,谢谢
关键词:sas程序 非平衡面板数据 请各位帮忙 非平衡面板 year 程序 平衡
沙发
mingfeng07 学生认证  发表于 2014-6-26 22:43:22 |只看作者 |坛友微信交流群
  1. data a;
  2. input code firm $  year1 year2;
  3. cards;
  4. 1       a     2006  2004
  5. 2       b     2005  2004
  6. ;
  7. run;
  8. data b;
  9. set a;
  10. do year=min(year1,year2) to max(year1,year2) by 1;
  11. output;
  12. end;
  13. drop year1 year2;
  14. run;
  15. proc sort data=b;
  16. by code firm year;
  17. run;
  18. data c;
  19. set b;
  20. by code firm year;
  21. if last.code then var=1;
  22. else var=0;
  23. run;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
liuliuqiu + 2 + 2 + 2 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

藤椅
liuliuqiu 发表于 2014-6-27 01:51:39 |只看作者 |坛友微信交流群
mingfeng07 发表于 2014-6-26 22:43
非常感谢,已经做出来了

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 04:08