楼主: amrino
2096 7

sas变量复制与其属性相同的数据 [推广有奖]

  • 0关注
  • 3粉丝

本科生

88%

还不是VIP/贵宾

-

威望
0
论坛币
8053 个
通用积分
161.0624
学术水平
6 点
热心指数
8 点
信用等级
5 点
经验
4704 点
帖子
50
精华
0
在线时间
191 小时
注册时间
2014-6-18
最后登录
2024-3-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求大家帮忙解决一下面的问题,首先看看数据:
  1. hhid,line,age,GENDER
  2. 211101001001,211101001,1,37,1
  3. 211101001001,211101001,1,39,.
  4. 211101001001,211101001,1,41,.
  5. 211101001001,211101001,1,48,.
  6. 211101001002,211101001,2,36,2
  7. 211101001002,211101001,2,38,.
  8. 211101001002,211101001,2,40,.
  9. 211101001002,211101001,2,47,.
复制代码
数据就是上面看到的一样,发现gender只有第一个有,但是剩下的都没有,但是剩下的没有的那部分观测属性都是一样的,因为第一个有性别所以剩下的都没有性别了。怎么做才可以把相同的属性的观测下面缺失的性别补全?
二维码

扫码加我 拉你入群

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

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

关键词:相同的数据 Gender 求大家帮忙 line End

沙发
mingfeng07 学生认证  发表于 2015-1-1 18:37:40 |只看作者 |坛友微信交流群
  1. data a;
  2. infile datalines delimiter=',';
  3. informat hhid $12. line $9.;
  4. input hhid $ line $ id age GENDER;
  5. cards;
  6. 211101001001,211101001,1,37,1
  7. 211101001001,211101001,1,39,.
  8. 211101001001,211101001,1,41,.
  9. 211101001001,211101001,1,48,.
  10. 211101001002,211101001,2,36,2
  11. 211101001002,211101001,2,38,.
  12. 211101001002,211101001,2,40,.
  13. 211101001002,211101001,2,47,.
  14. ;
  15. run;
  16. data b(drop=value);
  17. set a;
  18. retain value;
  19. if gender ^=. then value=gender;
  20. gender=value;
  21. run;
复制代码

使用道具

藤椅
amrino 学生认证  发表于 2015-1-3 11:15:23 |只看作者 |坛友微信交流群
mingfeng07 发表于 2015-1-1 18:37
感谢答复,我也用了同样的方法实现了。但是这个数据量很大,我想能不能先比较前面的三个变量,如果前面的三个变量一样,则判断是同一个个体,再将gender设置为一样的值。

使用道具

板凳
mingfeng07 学生认证  发表于 2015-1-3 14:02:44 |只看作者 |坛友微信交流群
amrino 发表于 2015-1-3 11:15
感谢答复,我也用了同样的方法实现了。但是这个数据量很大,我想能不能先比较前面的三个变量,如果前面的 ...
那你先可以先按个体识别变量进行排序就可以了。

使用道具

报纸
amrino 学生认证  发表于 2015-1-3 19:38:58 |只看作者 |坛友微信交流群
mingfeng07 发表于 2015-1-3 14:02
那你先可以先按个体识别变量进行排序就可以了。
嗯,最终想了很久只能这样了,考虑了很久想的别人是不是有更高大上的方法可以做比较。不过还是谢谢了!

使用道具

地板
teqel 发表于 2015-1-4 14:31:36 |只看作者 |坛友微信交流群
amrino 发表于 2015-1-3 19:38
嗯,最终想了很久只能这样了,考虑了很久想的别人是不是有更高大上的方法可以做比较。不过还是谢谢了!
可能要的是这个
  1. proc sort data=a;
  2. by hhid line id;
  3. run;

  4. data b(drop=value);
  5. set a;
  6. by hhid line id;
  7. retain value;
  8. if first.id then value=gender;
  9. else gender=value;
  10. run;
复制代码

使用道具

7
teqel 发表于 2015-1-4 14:31:46 |只看作者 |坛友微信交流群
amrino 发表于 2015-1-3 19:38
嗯,最终想了很久只能这样了,考虑了很久想的别人是不是有更高大上的方法可以做比较。不过还是谢谢了!
可能要的是这个
  1. proc sort data=a;
  2. by hhid line id;
  3. run;

  4. data b(drop=value);
  5. set a;
  6. by hhid line id;
  7. retain value;
  8. if first.id then value=gender;
  9. else gender=value;
  10. run;
复制代码

使用道具

8
amrino 学生认证  发表于 2015-1-4 21:00:03 |只看作者 |坛友微信交流群
teqel 发表于 2015-1-4 14:31
可能要的是这个
谢谢

使用道具

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

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

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

GMT+8, 2024-4-25 06:55