全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
6257 8
2013-04-10
求助:用SAS如何快速将一个变量的取值分成若干个区间,并且分别计算变量落在某个区间的个数呢??
不胜感激
二维码

扫码加我 拉你入群

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

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

全部回复
2013-4-10 18:51:02
这个可以参考。

http://blog.sina.com.cn/s/blog_41889b9001015htv.html

然后用proc freq做频数表。
二维码

扫码加我 拉你入群

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

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

2013-4-10 20:02:18
webgu 发表于 2013-4-10 18:51
这个可以参考。

http://blog.sina.com.cn/s/blog_41889b9001015htv.html
感谢回复,我还想问的是能不能让他自动分区间啊,因为我要分的区间实在是太多了。。。
二维码

扫码加我 拉你入群

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

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

2013-4-10 20:44:31
proc format;
    value range  1-10 = 'A'
                11-20 = 'B'
                21-30 = 'C'
               others = 'D';
run;
data test;
   do i = 1 to 15;
         A = int(ranuni(123)*100);
         b = int(ranuni(345)* 40);
   b_range = b;
     output;
        end;
   format b_range range.;
   drop i;
run;

proc rank data=test out=ranked group = 4;
    var a b;
   ranks a_rank b_rank;
run;
二维码

扫码加我 拉你入群

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

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

2013-4-10 21:11:05
yongyitian 发表于 2013-4-10 20:44
proc format;
    value range  1-10 = 'A'
                11-20 = 'B'
谢谢您!我试下
二维码

扫码加我 拉你入群

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

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

2013-4-10 22:45:40
data ex;
do id=1 to 1000;
x=ranuni(0)*10000;
output;
end;
run;
/*说两个最常用的分组,等距分组,等比例分组*/
/*1.等距分组,每组的间距都相等,假设分为10组*/
%let num=10;
proc sql noprint;

select (max(x)-min(x))/&num into:interval from ex;

create table res1 as
select id,x,
case when int((x-min(x))/&interval)=&num then %eval(&num-1) else  int((x-min(x))/&interval) end
as category
from ex;

create table category_count as
select categroy,count(1) from res1 group by category;
quit;

/*1.等比列分组,每组观测数都相等,假设分为10组*/
proc rank data=ex out=rank ties=low;
var x;
ranks x_rank;
run;


data res2;
set rank nobs=n;
categroy=int((x_rank-1)/(n/&num));
run;
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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