楼主: crackman
3021 9

跟crackman读SAS程序(38)---ORDER BY 的作用 [推广有奖]

楼主
crackman 发表于 2010-8-28 12:06:34
。。
已有 1 人评分学术水平 热心指数 收起 理由
醉_清风 + 1 + 1 KEEP WALKING

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

沙发
gzgysr 发表于 2010-8-28 12:31:35
不太明白。

藤椅
T星星 发表于 2010-8-28 12:43:05
这个嵌套用的不错!
能说下你这是在处理什么数据,要解决什么问题才写出这样的程序?
要是先知道问题,程序就容易读懂了~嘿嘿。。。

已卖:401份资源

院士

83%

还不是VIP/贵宾

-

威望
6
论坛币
91928 个
通用积分
23.5045
学术水平
424 点
热心指数
505 点
信用等级
256 点
经验
112978 点
帖子
2940
精华
0
在线时间
2532 小时
注册时间
2007-4-26
最后登录
2025-6-25

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

板凳
crackman 发表于 2010-8-28 13:22:51 |AI写论文
data raw;
   input ID $ VAR;
cards;
001 80
001 20
001 30
001 12
001 43
001 62
002 40
002 25
002 60
002 32
002 62
002 34
002 68
003 10
003 75
003 20
003 19
003 72
003 12
003 20
003 15
;
proc univariate data=raw noprint;
   var var;
   class id;
   output out=temp pctlpts=25 50 75 pctlpre=p;
run;
proc sql;
   create table out as
      select  a.*,
            case
               when var le p25 then 1
               when p25 lt var le p50 then 2
               when p50 lt var le p75 then 3
               when p75 le var then 4
               else .
            end as TYPE
         from raw a,temp b
         where a.id=b.id
         order by a.id,var; /*这里面包括GROUP分组逐步来CASE WHEN*/
quit;
/*其实这里学习的应该是ORDER BY */
二维码

扫码加我 拉你入群

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

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

关键词:crackman Ackman CRACK Order sas程序 程序 SAS crackman

报纸
rdzr 发表于 2010-8-28 13:50:31
楼主,再次强烈呼吁能够早日汇编成册,期盼您的大作面世,谢谢!

地板
crackman 发表于 2010-8-28 14:07:21
你从答案来问题
其实对你从问题来想答案是一个很好的逆向思维训练

7
crackman 发表于 2010-8-28 14:12:40
你去我的空间看看吧

8
rdzr 发表于 2010-8-28 14:18:56
哈哈,匆匆在斑竹的空间走一遭,算是开眼界了,偶要常去看看,多多学习,谢谢!

9
T星星 发表于 2010-8-28 16:35:36
其实我觉得这里体现不出用order by后可以分组处理的意义,他只是有排序功能。
看了斑竹的程序,觉得case when 真的很实用!

10
醉_清风 发表于 2010-8-30 09:15:50
确实比较常用
建议楼主把这些整理汇总一下哈
从来不需要想起 永远也不会忘记

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 07:55