【挑战你的SAS数据解析能力】十八大来了,我们能为党做些什么?-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

SAS软件培训

>>

【挑战你的SAS数据解析能力】十八大来了,我们能为党做些什么?

【挑战你的SAS数据解析能力】十八大来了,我们能为党做些什么?

发布:dinguangx | 分类:SAS软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

原帖地址:【挑战你的SAS数据解析能力】十八大来了,我们能为党做些什么?中共十八大正在如火如荼地进行,据百度百科的资料,本次十八大代表名额为2270名,由40个选举单位产生(参见http://baike.baidu.com/view/416 ...
免费学术公开课,扫码加入


原帖地址: 【挑战你的SAS数据解析能力】十八大来了,我们能为党做些什么?
中共十八大正在如火如荼地进行,据百度百科的资料,本次十八大代表名额为2270名,由40个选举单位产生(参见http://baike.baidu.com/view/4160404.htm)。在百度百科的资料中,代表名单以下面的形式列出(名单参见附件):(附件中的名单在原网页复制下来之后有所改动,把中文空格替换为英文空格,有些名称之间没有空格分隔的地方也加上去了。实在忍不住吐槽一下录入代表名单的同志,工作太不认真了,给我增加这么多不必要的麻烦。)
中央直属机关
共108人
于殿利 马 馼(女) 王 伟 王 晓 王 晨 王 瑶(女) 王 毅 王玉普 王东明 王尔乘 王仲田 王秀峰 王拥军 王京清 王秦丰 王家瑞 牛京辉(女) 卢新宁(女) 叶小文 申维辰 田 进 令计划 朱 玉(女) 朱 灵 任贵祥 全哲洙(朝鲜族) 刘 鹤 刘万永 刘结一 衣俊卿 安七一 许 鹏(满族) 许士平 孙志军 孙怀山 李 冰 李从军 李书磊 李玉赋 李东生 李宝善 李景田(满族) 李智勇 李瑞英(女) 杨冬权 杨冬梅(女) 杨金永 杨彩霞(女) 吴玉良 何平 何勇 何东平 何毅亭 余宁 冷溶 沈永社 沈跃跃(女) 沈蓓莉(女) 宋秀岩(女) 张立军 张纪南 张研农 张秋俭(女) 张裔炯 陆 昊 阿不来提-阿不都热西提(维吾尔族) 陈 希 陈 豪 陈久松 陈元丰 陈凤翔 陈世炬 陈扬勇 陈秀榕(女) 陈宝生 陈锡文 陈冀平 林 军 欧阳淞 卓松盛 周强 周本顺 周明伟 孟学农 赵 实(女) 赵胜轩 胡占凡 姚增科 夏勇 柴方国 钱岩(女) 铁凝(女) 徐延豪 徐如俊 陶治国 黄树贤 萨仁高娃(女,蒙古族) 曹清 崔少鹏 裘援平(女) 蔡名照 蔡赴朝 雒树刚 廖玒 谭跃 翟惠生 潘盛洲 霍克[4]
中央国家机关
共184人
于广洲 于魁智(回族) 万季飞 马 凯 马军胜 马尚权 马建堂 马朝旭 王 军 王 侠(女) 王 航 王万宾 王光亚 王伟光 王志刚 王志庚 王作安 王国强 王念法 王学军 王晓红(女) 王培安 王新宪 王德学 支树平 尤权 仇鸿(女) 仇保兴 丹珠昂奔(藏族) 方新(女) 方金英(女) 尹力 尹蔚民 孔彦鸿(女) 邓红蒂(女) 叶阳升 田力普 付文韬 付建华 白春礼(满族) 匡尚富 毕井泉 朱明 朱之鑫 任正晓 刘鹏 刘煜 刘玉亭 刘利华 刘金国 刘铁男 刘家义 刘赐贵 孙大伟 孙毅彪 杜玉波 杜占元 杜翠兰(女) 李伟 李燕(女) 李小林(女) 李习臻(女) 李乐民 李立国 李亚茹(女) 李兴华 李克明 李连宁 李玫瑾(女) 李国华 李国英 李宝荣 李建华 李适时 李海峰(女) 李家洋 李家祥 杨晶(蒙古族) 杨士秋 杨传堂 杨志明 杨衍银(女) 杨洁篪 杨焕宁 励小捷 肖捷 肖亚庆 吴一戎 吴爱英(女) 吴新雄 邱进 邱学强 何岩(满族) 何萍(女) 何立富 余欣荣 汪民 汪永清 沈德咏 宋大涵 张平 张军 张茅 张勇 张宇燕 张志军 张苏军 张丽萍(中科院)(女) 张丽萍(边防)(女) 张来武 张建龙 张建国 张海迪(女) 陈雷 陈 颖(女) 陈进玉 陈求发(苗族) 陈宜瑜 陈建民 陈德铭 邵芸(女) 邵琪伟 苗圩 范小建 罗黎明(壮族) 周英(女) 周济 周生贤 周伯华 郑智(女,回族) 郑国光 项兆伦 赵大程 赵少华(女,满族) 赵白鸽(女) 赵宏博(满族) 赵树丛 胡伟武 胡泽君(女) 柳斌杰 俞峰 俞贵麟 姜伟新 贺化 骆芃芃(女) 袁贵仁 耿惠昌 聂卫国 顾新(女) 徐绍史 徐德明(满族) 翁孟勇 高虎城 郭晓霞(女) 诸葛彩华(女) 黄明 黄浩涛 盛光祖 常荣军 鄂竟平 章启月(女) 梁东明 董大胜 蒋建国 韩俊 韩长赋 景蕊莲(女) 傅莹(女,蒙古族) 傅小兰(女) 焦焕成 谢伏瞻 谢旭人 赖亚文(女) 詹文龙 解学智 解振华 窦玉沛 蔡武 蔡昉 蔡振华 廖晓军 谭铁牛 穆虹 戴相龙[4]

在这份名单中,女代表被特殊标注了出来,不是汉族的代表也被特殊标注出来,但是这个名单的数据组织形式不是我们学习SAS是经常使用的一行一行的数据,而是先有一个分组来说明是哪个单位的,然后列出该单位下面的所有代表名单,假设我们要将这份名单解析成【选举单位 姓名 性别 民族】的格式,该怎么来实现呢,高手们都来试一下吧。
我先来个抛砖引玉的解析代码,并没有实现我想要的功能,只是实现了一部分的功能。
(最新解析程序已经上传,请往下看2012-11-16新增内容)
  1. libname sas 'd:/workspace/workspace_sas';
  2. /*解析十八大代表名单*/
  3. data sas.course02_name(drop=num i);
  4. infile 'D:\workspace\workspace_sas\十八大代表名单.txt' LS=32767;

  5. input @;
  6. num=countw(_infile_, ' ');
  7. retain category total ;
  8. if num = 1 then do;
  9. input category :$32.;
  10. input total :$32.;
  11. end;
  12. else do;
  13. do i = 1 to num ;
  14. input _name :$48. @@;
  15. output;
  16. end;
  17. input @;
  18. end;

  19. proc print;
  20. run;
复制代码运行结果如下:
这里只是把所属的单位和姓名解析出来,但是遇到姓名是两个汉字的时候,由于文档里面两个汉字的姓名中间是有空格分隔的,导致一个姓名被分到两行去了,还没找到解决的办法,并且性别和民族也没能解析出来,感兴趣的同学一起来尝试一下吧。
===================无情的分隔线,以下内容编辑于2012-11-16=============
感谢《The Little SAS Book》中对@和@@的详细讲解,使我终于可以按照最初设计的目标把所有需要的信息给解析出来,目前解析到的信息包括所属单位,姓名,性别,民族等。代码参考如下:
  1. libname sas 'd:/workspace/workspace_sas';
  2. /**/
  3. data sas.course02_name(drop=num i reg1 reg2 reg31 reg32 reg4 total _temp _temp1 _temp2);
  4. infile 'D:\workspace\workspace_sas\十八大代表名单.txt' LS=32767;
  5. reg1=prxparse("/(\S+)((.+))((.+))/");
  6. reg2=prxparse("/(\S+)((.+))/");
  7. reg31=prxparse("/(.+),(.+)/");
  8. reg32=prxparse("/(.+)、(.+)/");
  9. reg4=prxparse("/(\S+)\[\d+\]/");
  10. length nation $20;
  11. length gender $20;
  12. length _temp $20;
  13. input @;
  14. num=countw(_infile_, ' ');
  15. retain category;
  16. retain total;
  17. if num = 1 then do;
  18. input category :$32.;
  19. input total :$32.;
  20. end;
  21. else do;
  22. do i = 1 to num ;
  23. gender='男';
  24. nation='汉族';
  25. input name :$48. @@;
  26. if LENGTH(name)=2 then do;
  27. input _name :$48. @@;
  28. name = cats(name,_name);
  29. i=i+1;
  30. end;
  31. _name =strip(name);
  32. *去除行尾[13]之类的信息干扰;
  33. if prxmatch(reg4,_name) then _name=prxPosN(reg4,1,_name);
  34. name=_name;
  35. *处理性别,民族等信息;

  36. *情况1:姓名(女)(民族) 或 姓名(民族)(女) ;
  37. if prxMatch (reg1, _name) then do;
  38. name=prxPosN (reg1,1,_name);
  39. _temp1=prxPosN (reg1,2,_name);
  40. _temp2=prxPosN (reg1,3,_name);
  41. *len = length(_temp1);
  42. if length(_temp1) = 2 then do;
  43. gender=_temp1 ;
  44. if (find(_temp2,'族',1) ne 0) then nation=_temp2;
  45. end;

  46. if length(_temp2) = 2 then do;
  47. gender=_temp2;
  48. if (find(_temp1,'族',1) ne 0) then nation=_temp1;
  49. end;
  50. end;
  51. *情况2:姓名(女,民族) 或 姓名(女、民族) 或 姓名(女) 或 姓名(民族);
  52. else if prxmatch (reg2, _name) then do;
  53. name=prxPosN (reg2,1,_name);
  54. _temp=prxPosN (reg2,2,_name);
  55. if prxmatch (reg31, _temp) then do;
  56. _temp1=prxposN(reg31,1,_temp);
  57. _temp2=prxposN(reg31,2,_temp);
  58. if length(_temp1) = 2 then do;
  59. gender=_temp1;
  60. if (find(_temp2,'族',1) ne 0) then nation=_temp2;
  61. end;
  62. if length(_temp2) = 2 then do;
  63. gender=_temp2;
  64. if (find(_temp1,'族',1) ne 0) then nation=_temp1;
  65. end;
  66. end;
  67. else if prxmatch (reg32, _temp) then do;
  68. _temp1=prxposN(reg32,1,_temp);
  69. _temp2=prxposN(reg32,2,_temp);
  70. if length(_temp1) = 2 then do;
  71. gender=_temp1;
  72. if (find(_temp2,'族',1) ne 0) then nation=_temp2;
  73. end;

  74. if length(_temp2) = 2 then do;
  75. gender=_temp2;
  76. if (find(_temp1,'族',1) ne 0) then nation=_temp1;
  77. end;
  78. end;
  79. else do;
  80. if length(_temp) = 2 then gender=_temp;
  81. else if (find(_temp,'族',1) ne 0) then nation=_temp;
  82. end;
  83. end;
  84. output;
  85. end;
  86. input @;
  87. end;

  88. proc print;
  89. run;
复制代码这里面对于性别和民族的信息提取使用了较多的正则表达式,唯一值得吐槽的是,“维吾尔族”居然成功匹配'/(.+)[,、](.+)/'(蒙古族就不能匹配),使我不得不把这个正则拆分为"/(.+),(.+)/"和"/(.+)、(.+)/"两个正则。
最后,让我们来看一下输出的结果,分别展示一下ViewTable的输出和output界面的输出。
最最后,大家终于看到真相了吧,十八大的代表名单有2280名,而被各个媒体争相报道的代表名单是2270个,难道数学老师真的不可靠了吗?
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-2151862-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
数据分析师 人大经济论坛 大学 专业 手机版
联系客服
值班时间:工作日(9:00--18:00)