A 1
A 49
A 23
B 44
B 2
C 3
C 4
C 10
请教这样一个DATA SET,有没有办法只用一个DATA STEP(或者尽可能少的STEP)就增加一个VARIABLE MEAN_
DEVIATION,就是用VALUE的值,减去这个值所在的TYPE的那个组的平均值?

|
楼主: rockfido
|
5290
27
请教关于SAS DATA处理问题 |
|
已卖:1754份资源 博士生 32%
-
|
回帖推荐You need to load data twice, one for mean calculation and one for variance calculation. Here is one in data step. However, SAS/SQL provides a much simpler solution.
data have;
input TYPE $ VALUE;
datalines;
A 1
A 49
A 23
B 44
B 2
C 3
C 4
C 10
;
data wanted;
do until (end);
sum=0;
do i=1 by 1 until(last.type);
set have end=end; ...
data have;
input TYPE $ VALUE;
datalines;
A 1
A 49
A 23
B 44
B 2
C 3
C 4
C 10
;
data wanted;
if 0 then set have;
declare hash hh();
hh.definekey("Type");
hh.definedata("Type","sum","n");
hh.definedone();
do until(end1);
set have end=end1;
if hh.find()=0 then do;
sum=sum(sum,value);
n+1;
hh.replace();
...
本帖被以下文库推荐
| ||
|
|
| ||
| ||
| ||
|
Let them be hard, but never unjust
|
||
| ||
| ||
| ||
| ||
加好友,备注cda京ICP备16021002号-2 京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明


