楼主: crackman
4787 4

[原创博文] 跟crackman读SAS程序(96)—-对观测进行分组但不排序(notsorted) [推广有奖]

院士

83%

还不是VIP/贵宾

-

威望
6
论坛币
91908 个
通用积分
23.3245
学术水平
424 点
热心指数
505 点
信用等级
256 点
经验
113002 点
帖子
2948
精华
0
在线时间
2531 小时
注册时间
2007-4-26
最后登录
2024-8-6

初级热心勋章 中级热心勋章 初级学术勋章 初级信用勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
http://crackman.net/?p=677


说明:我们可以通过PROC PRINT过程展示数据,利用BY语句分组控制结果分页以及用BY和ID语句生成特定的展示格式。但是,当我们的数据集
中的数据观测按照一定的逻辑关系分组之后,其实并不需要严格的排序操作了。
构建一个分组变量:GROUP
proc sort data=sashelp.zipcode out=ByZIP;
where StateName=”Delaware” and CountyNm=”New Castle”;/*where语句筛选出目标数据集*/
by ZIP;/*按照Zip这个变量进行排序*/
run;
data grouped;
set ByZIP;
if City ne lag(City)/*利用Lag函数,进行前后数据值的比较,如果下一个值等于上一个值,那么说明下一个值依然属于上一组
如果不是,那么就在上一个分组Group基础上加1*/
then Group+1;
run;
proc print data=grouped(obs=30);
by Group City;/*按照Group City两个变量分组*/
id Group City;/*结果里面,按照Id Group这两个变量控制结果的输出*/
var ZIP Alias_City;
title1 “ZIP Codes Grouped by City”;
run;



对应上面这么复杂的程序,其实可以用一个参数解决:在Sort中使用 NOTSORTED 选项。
proc sort data=sashelp.zipcode out=ByZIP;
where StateName=”Delaware” and CountyNm=”New Castle”;
by ZIP;
run;
proc print data=ByZIP(obs=30);
by City notsorted;/*这里的notsorted其实简单而言为分组但不排序*/
id City ;
var ZIP Alias_City;
title1 “ZIP Codes Grouped by City”;
run;
下面对第二个方法的优缺点进行说明:
优点:
1.对数据集只进行了一次读取。
2.只使用PROC PRINT语句产生结果。
3.没有用LAG函数。
4.结果中没有多余变量。
缺点:
因为结果是从原始数据直接生成的,所以如果要对结果中的变量进行额外的处理那就不行。
本网站其他相关文章:
http://crackman.net/?p=118
http://crackman.net/?p=126
http://crackman.net/?p=223
二维码

扫码加我 拉你入群

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

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

关键词:crackman Ackman sorted CRACK sas程序 SAS adv crackman

沙发
rayjava 发表于 2010-11-25 18:53:51 |只看作者 |坛友微信交流群
Very good point, just add it more, by with nosorted option cannot be used when merging datasets.
one of the adv questions.

使用道具

藤椅
maobaohua188 发表于 2010-11-25 20:07:49 |只看作者 |坛友微信交流群
牛逼呀,自己第一次见到这样的程序!

使用道具

板凳
wxq1638 发表于 2010-11-25 22:01:00 |只看作者 |坛友微信交流群
都96了
这么duo难以下载啊,
我曾经搞了两个相似的管理程序,其中一个有如下输出形式:
20090920 bkp00008334 唐佳 吉坤 1 cafazolin 0.5 1 g 上海新先锋 090203 20100731 z 50 0.95 47.5
20090920 bkp00008334 唐佳 吉坤 2 dm 0.75 100 mg 天津天药 081107 20100930 s 10 1.4 14
20090920 bkp00008334 唐佳 吉坤 3 omeprazole 20 14 mg 上海美优 090402 20120421 jn 5 6.8 34
20090920 xs00000015095 赵跃 民信 1 脑血栓 0.3 100 g 吉林通化 090102 201112 s 5 1.9 9.5
20090920 xs00000015095 赵跃 民信 2 vb12 1 10 0.05% 芜湖康奇 090511 201104 z 20 0.85 17
20090920 xs00000015095 赵跃 民信 3 ribavirin 1 10 10% 蚌埠宏业 090551 201104 z 30 0.95 28.5
20090920 xs00000015095 赵跃 民信 4 lincomycin 2 10 30% 上海现代 0906021 201105 z 30 3.3 99
20091119 bkp00015954 张星 吉坤 1 ibuprofen 0.1 100 g 山东方明 0906082 20130531 s 10 1.35 13.5
20091119 bkp00015954 张星 吉坤 2 再林 0.125 18 g 先声 01-09033 20120316 kl 10 11.2 112
20091119 bkp00015954 张星 吉坤 3 compound 0.2 24 g 上海新亚 090211 20110205 s 10 1.2 12
20091119 bkp00015954 张星 吉坤 4 银黄含片 0.65 24 g 成都地奥 0904031 20110438 s 10 4.6 46
20091119 bkp00015954 张星 吉坤 5 cefoperazone 1 1 g 苏州东瑞 08093100 20100904 z 50 2.42 121
20091119 xs0000025987 赵跃 民信 1 马应龙 10 1 0.5% 武汉马应龙 090815 201207 rg 5 5.5 27.5
20091119 xs0000025987 赵跃 民信 2 甲紫 20 1 ml 河北建宁 090901 201108 z 20 0.25 5
20100614 xsd10040199 沈丽娜 吉坤 1 感康 . 12 g 吴太感康 0911107 20121031 s 2 8.5 17
20100614 xsd10040199 沈丽娜 吉坤 2 aizthromycin 0.25 6 g 上海现代 091203 20111130 s 10 3.7 37
20100614 bkp00032720 于雯雯 吉坤 1 木香顺气丸 30 1 g 安徽仁和堂 100202 20130131 p 5 1.4 7
20100614 bkp00032720 于雯雯 吉坤 2 洁尔阴 140 1 ml 成都恩威 0912027 20131130 p 5 9.4 47
20100614 xs0000021357 于雯雯 吉坤 3 藿香正气片 0.31 50 g 上海海虹 091210 20111130 s 10 3.1 31
20101123 xsck20101109995 王红玲 安泰 1 输液器 6 1 h 河南曙光 100201 20120228 z 125 0.5 62.5
20101123 xsck20101109995 王红玲 安泰 2 kmno4 20 1 g 商丘光源 100702 20130630 z 10 0.45 4.5
20101123 xsck20101109995 王红玲 安泰 3 phenolphthalein 50 100 mg 山西亨瑞达 100304 20130228 s 5 0.56 2.8
20101123 xsck20101109995 王红玲 安泰 4 metronidazole 250 1 0.2% 安徽环球 s100909 20120228 p 60 1.05 63
20101125 bkp00048744 冯静 吉坤 1 azithromycin 0.25 6 g 上海现代 100501 20120430 s 30 3.65 109.5
20101125 bkp00048744 冯静 吉坤 2 oxytetracycline 0.125 1000 g 西丰鹿宝堂 100602 . 20130531 2 12 24
20101125 bkp00048744 冯静 吉坤 3 clindamycin 2 10 15% 山东方明 0906015 20110530 z 10 2.75 27.5
20101125 bkp00048744 冯静 吉坤 4 azithromycin 0.25 6 g 浙江亚太 1051001 20120430 z 30 1.4 42
20101125 xsd10090339 沈丽娜 吉坤 1 roxithromycin 0.15 6 g 上海现代 101001 20120930 s 30 1.52 45.6
20101125 xsd10090339 沈丽娜 吉坤 2 dm 1 10 0.2% 江苏涟水 1007143 20120713 z 10 0.9 9
20101125 xsd10090339 沈丽娜 吉坤 3 amikacin 2 10 5% 上海信谊 100820 20120830 z 10 3.3 33

使用道具

报纸
wxq1638 发表于 2010-11-25 22:35:24 |只看作者 |坛友微信交流群
哈哈@
抱歉!

使用道具

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

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

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

GMT+8, 2024-9-13 01:09