由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Statistics版 - 请教一个SAS问题:怎样平均地把obs从小到大分成几个Group?
相关主题
%do questions一道sas题 在线求解 50个包子答谢 急啊
sas 代码问题SAS macro question
SAS Macro FunctionSAS,如何从一个大的dataset里面提取部分记录
【包子】求问个简单sas macro问题put statement in macro
一个常见的问题[合集] How to do %eval(1.5+0.1) in macro.
请教一个SAS 数据分配问题how to use first.var in sas macro?
请教一个SAS Macro的问题sas macro 问题
SAS help : how to macro odsWeird SAS macro bugs, 包子重谢!
相关话题的讨论汇总
话题: obs话题: eval话题: inputdata话题: run话题: sas
进入Statistics版参与讨论
1 (共1页)
w******w
发帖数: 362
1
有一个dataset,要求根据score从小到大平均分成N个bin, 要求编一个Macro,这样的
话,具体分成几组只要用相应的N运行一下那个macro就行了。
怎么写比较好啊?求指导……
d******9
发帖数: 404
2
it is not hard. You give a sample dataset first.
s******r
发帖数: 1524
3
data score;
do score=1 to 88;
output;
end;
run;
%macro subgrp(set=,var=, grp=);
proc sort data=&set;by &var;run;
data _null_;set &set end=eof;
if eof then call symput ('total',_n_);
run;
%let step=%eval(&total/&grp);
%if %eval(&step*&grp) < &total %then %let step=%eval(&step+1);
%do i =0 %to %eval(&grp-1);
%let first_obs=%eval(&i*&step+1);
%let obs=%eval(&first_obs+&step -1);
data &set&i;set &set(firstobs=&first_obs obs=&obs);run;
%end;
%mend;
%subgrp(set=score,var=score, grp=5);
bz pls.

【在 w******w 的大作中提到】
: 有一个dataset,要求根据score从小到大平均分成N个bin, 要求编一个Macro,这样的
: 话,具体分成几组只要用相应的N运行一下那个macro就行了。
: 怎么写比较好啊?求指导……

h********o
发帖数: 103
4
Try this:
============
data test;
do x = 99 to 1 by -1;
output;
end;
run;
%macro split(inputdata, N, var);
proc sort data = &inputdata;
by &var;
run;
data _null_;
if 0 then set &inputdata nobs = count;
call symput("numobs", put(count,8.));
run;
%let m = %sysevalf(&numobs/&N, ceil);
%do i = 1 %to &N;
data test&i;
set &inputdata;
if %eval(&m*(&i-1)) < _N_ <= %eval(&m*&i);
run;
%end;
%mend;
%split(test,5,x);
g****8
发帖数: 2828
5
why not just using PROC RANK?
g****8
发帖数: 2828
v*********0
发帖数: 941
7
Bang Ding
a*****3
发帖数: 601
8
问你个问题哈, 回答出来了有包子, 25伪币.
1. 为什么不直接用proc 实现 难道是为了传说中的...?
2. 你写的宏里面, 第一部分是data_step, 在宏看来,就是不可识别的字串了;后面一
部分是宏语句,宏facility可以处理的.
问题: 不是说宏应该比sas language先编译执行吗? 这样一来 岂不是后面那部分先
执行, 前面那部分后执行 ?

【在 s******r 的大作中提到】
: data score;
: do score=1 to 88;
: output;
: end;
: run;
: %macro subgrp(set=,var=, grp=);
: proc sort data=&set;by &var;run;
: data _null_;set &set end=eof;
: if eof then call symput ('total',_n_);
: run;

D******n
发帖数: 2836
9
这是典型gains/lift charts的任务。proc rank不好的地方是,你不能force
overlapped bin, 第二不能搞有weight的data

【在 g****8 的大作中提到】
: why not just using PROC RANK?
g****8
发帖数: 2828
10
一般是什么情况的overlapped bin呀?

【在 D******n 的大作中提到】
: 这是典型gains/lift charts的任务。proc rank不好的地方是,你不能force
: overlapped bin, 第二不能搞有weight的data

相关主题
请教一个SAS 数据分配问题一道sas题 在线求解 50个包子答谢 急啊
请教一个SAS Macro的问题SAS macro question
SAS help : how to macro odsSAS,如何从一个大的dataset里面提取部分记录
进入Statistics版参与讨论
a*****3
发帖数: 601
11
买糕的 这年月大家都纷纷bso啊, 你儿子看什么呢? C什么? C++编程宝典?

【在 D******n 的大作中提到】
: 这是典型gains/lift charts的任务。proc rank不好的地方是,你不能force
: overlapped bin, 第二不能搞有weight的data

g****8
发帖数: 2828
12
好像那是吃的吧

【在 a*****3 的大作中提到】
: 买糕的 这年月大家都纷纷bso啊, 你儿子看什么呢? C什么? C++编程宝典?
D******n
发帖数: 2836
13
1)女儿
2)燕麦
3)最恨C++

【在 a*****3 的大作中提到】
: 买糕的 这年月大家都纷纷bso啊, 你儿子看什么呢? C什么? C++编程宝典?
a*****3
发帖数: 601
14
不好意思....
明明是是帅哥的发型...
昨天去剃头..no.5 buz...效果就是这样滴..

【在 D******n 的大作中提到】
: 1)女儿
: 2)燕麦
: 3)最恨C++

g****8
发帖数: 2828
15
大牛顺便也讲解一下问题呀

【在 D******n 的大作中提到】
: 1)女儿
: 2)燕麦
: 3)最恨C++

D******n
发帖数: 2836
16
其实也没什么必要,就是有时候一个score value占了很多个obs, 一个score value占
两个bin,
用proc rank就合并了,其实也合理,可是有人就喜欢看着一个score value占两个bin。

【在 g****8 的大作中提到】
: 一般是什么情况的overlapped bin呀?
g****8
发帖数: 2828
17
这种情况的数据应该很少吧,这样的score bin就没什么意义了。
你说的那个weighted 我好像记得在proc rank 前面加一步就解决了。

bin。

【在 D******n 的大作中提到】
: 其实也没什么必要,就是有时候一个score value占了很多个obs, 一个score value占
: 两个bin,
: 用proc rank就合并了,其实也合理,可是有人就喜欢看着一个score value占两个bin。

D******n
发帖数: 2836
18
like what?

【在 g****8 的大作中提到】
: 这种情况的数据应该很少吧,这样的score bin就没什么意义了。
: 你说的那个weighted 我好像记得在proc rank 前面加一步就解决了。
:
: bin。

l*********s
发帖数: 5409
19
一看就知道你是帅哥啊

【在 D******n 的大作中提到】
: 1)女儿
: 2)燕麦
: 3)最恨C++

a*****3
发帖数: 601
20
你们家小朋友 目前我老还分不出男女..不过看起来像个boy.

【在 l*********s 的大作中提到】
: 一看就知道你是帅哥啊
s******r
发帖数: 1524
21
1。我忘了
2。不知道。
包子please.
1。其实真忘了,看楼主要macro就顺手写下去了。年纪大了,懒的记那么多。而且一天
到晚都是database,SAS只是后期和一些macro处理。
2。我觉着不能太相信SAS,要不就怎么解释不了
proc sql;sel b from t group by b;quit;run;
能给出无数个相同的b来,害得我已经有强迫症了。每次都写成
proc sql;sel distinct b from t group by b;quit;run;
我觉着宏先编译但并不执行。SAS预留了宏的位置,到执行的时候再读宏值。反正对于
SAS,我是早已放弃理解,只求所以然,不求之所以然。

【在 a*****3 的大作中提到】
: 问你个问题哈, 回答出来了有包子, 25伪币.
: 1. 为什么不直接用proc 实现 难道是为了传说中的...?
: 2. 你写的宏里面, 第一部分是data_step, 在宏看来,就是不可识别的字串了;后面一
: 部分是宏语句,宏facility可以处理的.
: 问题: 不是说宏应该比sas language先编译执行吗? 这样一来 岂不是后面那部分先
: 执行, 前面那部分后执行 ?

G*******s
发帖数: 10605
22
用proc univariate里面输出的percentile值来做bin,我们大多时候都分成4组(
quartiles)做分析,稍微变化下就能分N组

【在 w******w 的大作中提到】
: 有一个dataset,要求根据score从小到大平均分成N个bin, 要求编一个Macro,这样的
: 话,具体分成几组只要用相应的N运行一下那个macro就行了。
: 怎么写比较好啊?求指导……

1 (共1页)
进入Statistics版参与讨论
相关主题
Weird SAS macro bugs, 包子重谢!一个常见的问题
sas 代码问题请教一个SAS 数据分配问题
could anybody please help check why my codes don't work? Thanks!请教一个SAS Macro的问题
Help: SAS codeSAS help : how to macro ods
%do questions一道sas题 在线求解 50个包子答谢 急啊
sas 代码问题SAS macro question
SAS Macro FunctionSAS,如何从一个大的dataset里面提取部分记录
【包子】求问个简单sas macro问题put statement in macro
相关话题的讨论汇总
话题: obs话题: eval话题: inputdata话题: run话题: sas