楼主: gjpzwx
3285 10

[有偿编程] SAS missing data 处理 [推广有奖]

  • 17关注
  • 1粉丝

硕士生

31%

还不是VIP/贵宾

-

威望
0
论坛币
57 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
491 点
帖子
112
精华
0
在线时间
162 小时
注册时间
2013-2-10
最后登录
2014-11-21

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
EXCEL里面有500个SHEET,我把500个SHEET导入SAS数据库。但是很多SHEET有缺失值,不知道如何批量删除含有缺失值的SHEET表。因为SHEET很多,而且每个SHEET里面有3个变量,所有可能需要用宏处理,忘多多指教。求SAS高手
二维码

扫码加我 拉你入群

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

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

关键词:missing Miss Data SSIN MIS EXCEL

回帖推荐

tj0412ymy 发表于6楼  查看完整内容

沙发
henrydamo 发表于 2013-7-4 16:46:37 |只看作者 |坛友微信交流群
这个有点意思,还没有解决吗

使用道具

藤椅
gjpzwx 发表于 2013-7-4 19:31:49 |只看作者 |坛友微信交流群
henrydamo 发表于 2013-7-4 16:46
这个有点意思,还没有解决吗
just solve a part of this problem,could you help me?

使用道具

板凳
boe 发表于 2013-7-4 20:19:37 |只看作者 |坛友微信交流群
导入---判断----删除。
试试先把缺失的个数赋给宏变量,然后%if判断宏变量的值是否为零,据此再在宏里面删表。不知是否可行。。
判断缺失值存在与否,不知有没有简单的方法
Gorgeous girl , I love !

使用道具

报纸
henrydamo 发表于 2013-7-5 15:48:28 |只看作者 |坛友微信交流群
gjpzwx 发表于 2013-7-4 19:31
just solve a part of this problem,could you help me?
I would like to try but can you send me the files as well as the codes?

使用道具

地板
tj0412ymy 发表于 2013-7-5 17:20:29 |只看作者 |坛友微信交流群
  1. %let path=yourpath;
  2. LibName xlsLib "&path\Demo.xlsx" mixed=yes ;

  3. %MACRO ImportSheet();
  4. %do i=1 %to 500;
  5. Data Sheet&i.( drop=_: ) ;
  6. Set xlsLib."Sheet&i.$"n( reName=( x=_x y=_y z=_z) ) ;
  7. x = input( _x , best. ) ;
  8. y = input( _y , best. ) ;
  9. z = input( _z , best. ) ;
  10. Run ;
  11. %end;
  12. %mend;
  13. %ImportSheet;

  14. %macro deletemissingSheet();
  15. %do i=1 %to 500;
  16. proc means data=Sheet&i nmiss noprint;
  17. output out=missing&i.(drop=_type_ _freq_) nmiss=;
  18. run;

  19. proc sql noprint;
  20. select x+y+z into : flag from missing&i.;
  21. quit;

  22. %if %eval(&flag)>0 %then %do;
  23. proc sql;
  24. drop table Sheet&i;
  25. quit;
  26. %end;
  27. %end;
  28. %mend;
  29. %deletemissingSheet;

  30. libname export "&path\Demo_out.xlsx";

  31. %macro export();
  32. PROC SQL noprint;
  33. CREATE table tablenames AS
  34. SELECT distinct MEMNAME
  35. FROM DICTIONARY.TABLES
  36. WHERE LIBNAME='WORK' and MEMNAME contains 'SHEET'
  37. ;
  38. select count(*) into : obs from tablenames;
  39. select MEMNAME into :out1 -: out%left(&obs)
  40. from tablenames
  41. ;
  42. QUIT;

  43. %do j=1 %to %left(&obs);
  44. data export.&&out&j;
  45. set &&out&j;
  46. run;
  47. %end;
  48. %mend;
  49. %export;

  50. libname export clear;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
boe + 1 + 1 + 1 great import

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

对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

使用道具

7
gjpzwx 发表于 2013-7-6 08:39:47 |只看作者 |坛友微信交流群
tj0412ymy 发表于 2013-7-5 17:20
您好,看了您的代码非常的精彩,和我自己写的比比都觉得惭愧。不过我有几点不懂,是否可以私信我一个联系方式

使用道具

8
gjpzwx 发表于 2013-7-6 11:14:40 |只看作者 |坛友微信交流群
boe 发表于 2013-7-4 20:19
导入---判断----删除。
试试先把缺失的个数赋给宏变量,然后%if判断宏变量的值是否为零,据此再在宏里面删 ...
谢谢,楼下的提供了具体的步骤,思路基本相同

使用道具

9
gjpzwx 发表于 2013-7-6 11:14:44 |只看作者 |坛友微信交流群
boe 发表于 2013-7-4 20:19
导入---判断----删除。
试试先把缺失的个数赋给宏变量,然后%if判断宏变量的值是否为零,据此再在宏里面删 ...
谢谢,楼下的提供了具体的步骤,思路基本相同

使用道具

10
gjpzwx 发表于 2013-7-6 11:14:53 |只看作者 |坛友微信交流群
boe 发表于 2013-7-4 20:19
导入---判断----删除。
试试先把缺失的个数赋给宏变量,然后%if判断宏变量的值是否为零,据此再在宏里面删 ...
谢谢,楼下的提供了具体的步骤,思路基本相同

使用道具

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

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

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

GMT+8, 2024-4-28 15:29