全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3997 6
2011-12-27
假设有如下数据
a  b  c  d  e
1  15  20 17  19
1  20  24  16  19
1  16  18  27  25
2  18  22  26  22
2  16  30  19  26
2  19  14  23  24
请问如何根据分组变量a,求每一个变量在该组与该组最大值的比例,如b在分组1中,有15/20、20/20、16/20,然后统计每个观测中大于某个比例(比如0.7)的个数,目的就要输出个数,请高手指教
二维码

扫码加我 拉你入群

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

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

全部回复
2011-12-27 11:46:50
See below in details,

data t1;
input
a  b ;
cards;
1  15  
1  20  
1  16  
2  18  
2  16  
2  19  
;

proc sql;
  select a ,  b/max(b)-0.8>0 as condition
  from t1
  group a
  ;
  quit;

***one step with subquery***;
proc sql;
  select a, sum(condition)
  from (
  select a ,  b/max(b)-0.8>0 as condition
  from t1
  group a )
  group by a
  ;
  quit;
二维码

扫码加我 拉你入群

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

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

2011-12-27 15:09:57
为什么第一段运行结果是             a  condition
                                     -------------------
                                            1       0.75
                                            1        0.8
                                            1          1
                                            2          1
                                            2   0.842105
                                            2   0.947368
为什么不是

                                            a  condition
                                     -------------------
                                            1       0.75
                                            1          1
                                            1        0.8
   哦 修改过select a ,  b/max(b) as condition
二维码

扫码加我 拉你入群

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

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

2011-12-27 17:08:47
复制代码
二维码

扫码加我 拉你入群

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

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

2011-12-29 09:31:03
shenliang_111 发表于 2011-12-27 17:08
谢谢,不过monotonic() 是什么意思呀?
二维码

扫码加我 拉你入群

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

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

2011-12-29 10:10:46
shenliang_111 发表于 2011-12-27 17:08
monotonic()知道这个函数了,谢谢
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群