请选择 进入手机版 | 继续访问电脑版
楼主: shevaze
5892 8

如何快速将变量取值分区间呢? [推广有奖]

  • 2关注
  • 10粉丝

副教授

75%

还不是VIP/贵宾

-

威望
0
论坛币
2962 个
通用积分
44.2810
学术水平
9 点
热心指数
6 点
信用等级
3 点
经验
87196 点
帖子
720
精华
0
在线时间
1095 小时
注册时间
2010-11-13
最后登录
2022-4-11

shevaze 发表于 2013-4-10 17:42:55 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助:用SAS如何快速将一个变量的取值分成若干个区间,并且分别计算变量落在某个区间的个数呢??
不胜感激
二维码

扫码加我 拉你入群

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

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

关键词:如何快速 不胜感激 如何 不胜感激

已有 1 人评分热心指数 收起 理由
eijuhz + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

webgu 发表于 2013-4-10 18:51:02 |显示全部楼层 |坛友微信交流群
这个可以参考。

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

然后用proc freq做频数表。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

使用道具

shevaze 发表于 2013-4-10 20:02:18 |显示全部楼层 |坛友微信交流群
webgu 发表于 2013-4-10 18:51
这个可以参考。

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

使用道具

yongyitian 发表于 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;

使用道具

shevaze 发表于 2013-4-10 21:11:05 |显示全部楼层 |坛友微信交流群
yongyitian 发表于 2013-4-10 20:44
proc format;
    value range  1-10 = 'A'
                11-20 = 'B'
谢谢您!我试下

使用道具

ziyenano 发表于 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;

使用道具

wangfengxi 发表于 2013-4-11 03:19:08 |显示全部楼层 |坛友微信交流群
学习了 谢谢各位

使用道具

xncdww 发表于 2016-12-8 16:39:49 |显示全部楼层 |坛友微信交流群
学习了!

使用道具

linzhjbtx 发表于 2018-7-4 10:15:49 |显示全部楼层 |坛友微信交流群
ziyenano 发表于 2013-4-10 22:45
data ex;
do id=1 to 1000;
x=ranuni(0)*10000;
厉害!

使用道具

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

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

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

GMT+8, 2024-3-29 19:31