楼主: fbwg
1200 5

程序咨询 [推广有奖]

  • 0关注
  • 0粉丝

大专生

78%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0.9000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
529 点
帖子
16
精华
0
在线时间
97 小时
注册时间
2007-4-6
最后登录
2024-4-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
如果我有研究对象开始吸烟的年龄(agef),停止吸烟的年龄(agee),每年的吸烟量(freq)。假设所有对象最小吸烟年龄为10,最大吸烟年龄为80.,我想生成一组变量s10,s11.....s80,分别表示每个对象不同年龄的吸烟量.请问怎么处理?
id agef agee freq
1 24 48 20
2 11 69 30

对于id1, 其s10-s23,s49-s80 都为0,s24-s48的值为freq;
对于id1, 其s10,s70-s80 都为0,s11-s69的值为freq;

非常感谢
二维码

扫码加我 拉你入群

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

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

关键词:freq 研究对象 怎么处理 非常感谢 Age 程序

沙发
mingfeng07 学生认证  发表于 2015-6-17 23:19:06 |只看作者 |坛友微信交流群
  1. data a;
  2. input id agef agee freq;
  3. cards;
  4. 1 24 48 20
  5. 2 11 69 30
  6. ;
  7. run;
  8. data b;
  9. set a;
  10. do i=10 to 80;
  11. if i<agef or i>agee then value=0;
  12. else if agef<=i<=agee then value=freq;
  13. output;
  14. end;
  15. run;
  16. proc transpose data=b out=c(drop=_name_) prefix=s;
  17. var value;
  18. by id agef agee freq;
  19. run;
复制代码

使用道具

藤椅
fbwg 发表于 2015-6-17 23:41:04 |只看作者 |坛友微信交流群
非常感谢!

使用道具

板凳
fbwg 发表于 2015-6-17 23:50:38 |只看作者 |坛友微信交流群
还有一个问题,如何把生成的变量名s1....s71,改为s10...s80?谢谢

使用道具

报纸
mingfeng07 学生认证  发表于 2015-6-18 00:01:08 |只看作者 |坛友微信交流群
fbwg 发表于 2015-6-17 23:50
还有一个问题,如何把生成的变量名s1....s71,改为s10...s80?谢谢
  1. proc transpose data=b out=c(drop=_name_) prefix=s;
  2. var value;
  3. by id agef agee freq;
  4. id i;
  5. run;
复制代码

使用道具

地板
fbwg 发表于 2015-6-18 00:18:13 |只看作者 |坛友微信交流群
非常感谢!

使用道具

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

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

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

GMT+8, 2024-4-24 09:37