楼主: crazygoing
4244 6

[原创博文] 如何这样拆分数据集 [推广有奖]

  • 0关注
  • 47粉丝

教授

29%

还不是VIP/贵宾

-

威望
1
论坛币
4821 个
通用积分
21.8270
学术水平
165 点
热心指数
203 点
信用等级
146 点
经验
48691 点
帖子
441
精华
1
在线时间
1325 小时
注册时间
2007-11-9
最后登录
2024-4-11

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有数据集如下
  1. data a;
  2. input sex stype $ Frequency;
  3. cards;
  4. 1 初中 2
  5. 1 大学 0
  6. 1 大专 0
  7. 1 高中 0
  8. 1 小学 2
  9. 1          4
  10. 2 初中 0
  11. 2 大学 1
  12. 2 大专 2
  13. 2 高中 2
  14. 2 小学 0
  15. 2         5
  16. . 初中 2
  17. . 大学 1
  18. . 大专 2
  19. . 高中 2
  20. . 小学 2
  21. .          9
  22. ;
  23. run;
复制代码



现在想拆分数据集,规则:每一种sex取值(包括缺失值)生成一个数据集,要求:在不知道sex有具体哪些值的时候 该如果写代码?
二维码

扫码加我 拉你入群

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

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

关键词:数据集 Frequency cards Input card 如何 初中 大学 大专 高中

回帖推荐

本帖被以下文库推荐

沙发
baoaibaobao 发表于 2011-4-2 08:53:38 |只看作者 |坛友微信交流群
  1. %macro sex;
  2. proc sql noprint;
  3. select distinct sex into:sex separated by ' ' from a;
  4. quit;
  5. %do i=1 %to &sqlobs;
  6. %let sex_=%sysfunc(scan(&sex,&i,' '));
  7. %if &sex_=. %then %do;
  8.         data sex_0;
  9.                 set a;                               
  10.                 if sex=&sex_;
  11.         run;
  12. %end;
  13. %else %do;
  14. data sex_&sex_;
  15.                 set a;                               
  16.                 if sex=&sex_;
  17.         run;
  18. %end;
  19. %end;
  20. %mend;
  21. %sex;
复制代码
已有 2 人评分热心指数 信用等级 收起 理由
crackman + 1 鼓励积极发帖讨论
peijiamei + 1 + 1 观点有启发

总评分: 热心指数 + 2  信用等级 + 1   查看全部评分

使用道具

藤椅
crazygoing 发表于 2011-4-2 09:16:59 |只看作者 |坛友微信交流群
2# baoaibaobao 感谢二楼的指点。
有个问题,用二楼的代码来分stype变量时出现了问题,发现二楼的代码不能对观测值是文本的变量使用。不知二楼高人能否写个对任何变量通用的代码。多谢多谢!

使用道具

板凳
baoaibaobao 发表于 2011-4-2 10:24:44 |只看作者 |坛友微信交流群
  1. %macro var(name);
  2. proc datasets lib=work nolist;
  3. save a;run;quit;
  4. proc sql noprint;
  5. select distinct &name. into:var separated by ' ' from a;
  6. quit;
  7. %do i=1 %to &sqlobs;
  8. %let var_=%sysfunc(scan(&var,&i,' '));
  9. data data_&i;
  10.      set a;
  11.         if &name="&var_";
  12. run;
  13. %end;
  14. %mend;
  15. %var(stype);
复制代码
crazygoing 发表于 2011-4-2 09:16
2# baoaibaobao 感谢二楼的指点。
有个问题,用二楼的代码来分stype变量时出现了问题,发现二楼的代码不能对观测值是文本的变量使用。不知二楼高人能否写个对任何变量通用的代码。多谢多谢!

使用道具

报纸
crazygoing 发表于 2011-4-2 15:40:00 |只看作者 |坛友微信交流群
4# baoaibaobao 多谢多谢!受教了!

使用道具

地板
Bridgenc 发表于 2011-6-5 22:00:10 |只看作者 |坛友微信交流群
a question, why do you need the following code:

proc datasets lib=work nolist;

save a;run;quit;

使用道具

7
O(∩_∩)O~! 发表于 2014-10-13 14:33:15 |只看作者 |坛友微信交流群
baoaibaobao 发表于 2011-4-2 10:24
再请教:如果要把用来拆分数据集的变量的每个值,作为相应子数据集的名字,该怎么写程序?谢谢!

使用道具

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

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

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

GMT+8, 2024-4-26 14:02