楼主: liuliuqiu
1376 6

程序请教 [推广有奖]

  • 6关注
  • 2粉丝

已卖:35份资源

副教授

64%

还不是VIP/贵宾

-

威望
0
论坛币
2239 个
通用积分
8.1161
学术水平
3 点
热心指数
5 点
信用等级
5 点
经验
14393 点
帖子
429
精华
0
在线时间
1129 小时
注册时间
2009-3-24
最后登录
2025-12-11

楼主
liuliuqiu 发表于 2014-11-7 17:40:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
想请问一个问题,数据集中只有个体名称,想迅速生成时间从1998-2010年的面板数据,应该怎么做呢?如,原数据:                          name
                            1
                            2
                            ...
生成数据: name      year
                   1           1998
                   1            1999
                   ...
                    1            2010
                    2            1998
                   ...
多谢啦!

二维码

扫码加我 拉你入群

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

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

关键词:name year 面板数据 怎么做 数据集 程序

沙发
liuliuqiu 发表于 2014-11-7 18:37:37
着急,请各位帮帮忙

藤椅
就喜欢马 发表于 2014-11-7 18:59:16
以1到4为例
  1. data m1;
  2. input name;
  3. cards;
  4. 1
  5. 2
  6. 3
  7. 4
  8. ;
  9. run;
  10. proc sort data=name;
  11. by name;
  12. run;
  13. data m2;
  14. set m1;
  15. by name;
  16. if last.name=1 then n=name;
  17. do i=1 to n;
  18. do j=1998 to 2010;
  19. year=j;
  20. output;
  21. end;
  22. end;
  23. drop i j n;
  24. run;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 60 根据规定进行奖励

总评分: 论坛币 + 60   查看全部评分

板凳
苹果叶 在职认证  发表于 2014-11-8 12:56:34
  1. data raw;
  2.   do i=1 to 5;
  3.     output;
  4.   end;
  5. run;

  6. data test;
  7.   set raw;
  8.   do j=1998 to 2010;
  9.     output;
  10.   end;
  11. run;
复制代码
已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 30 根据规定进行奖励
liuliuqiu + 2 + 2 + 2 + 2 热心帮助其他会员

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

报纸
liuliuqiu 发表于 2014-11-8 13:04:19
苹果叶 发表于 2014-11-8 12:56
多谢啦

地板
teqel 发表于 2014-11-8 13:58:02
data test;
        do name=1 to 5;
                do year=1998 to 2010;
                        output;
                end;
        end;
run;

7
mingfeng07 学生认证  发表于 2014-11-9 14:13:43
假设原始数据集为a,在不知道数据集观测个数的情况下,考虑使用retain关键词的用法:
  1. proc sort data=a;by name;run;
  2. data b;
  3. set a;
  4. by name;
  5. retain year;
  6. if first.name then year=1998;
  7. else year=year+1;
  8. run;
复制代码

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 18:56