全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4175 4
2013-01-14
我有一组数据info,包括变量stkcd fyear roa roe,stkcd是股票代码,fyear是年度,roa,roe是两个会计指标,数值型变量。现在我需要对所有股票分年度对roa,roe进行1%,99%winsorize。
这是我自己找到的winsorize程序:proc sort data=info;by fyear;
proc means data=info;
var roa roe;
by fyear;
output out=tmp(drop=_freq_ _type_) p1=x1-x2 p99=y1-y2;run;

data winsorize1_info;
merge info tmp;
by fyear;
array z{1:2} roa roe;
array x{1:2} x1-x2;
array y{1:2} y1-y2;
do i=1 to 2;         
  if .<z<x then z=x;
  if z>y then z=y;   
end; run;
程序我基本可以看懂,但是我不明白,为什么新生成的 winsorize1_info 中,i的值等于3呢?
谁能帮我解释解释吗?谢谢了!


二维码

扫码加我 拉你入群

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

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

全部回复
2013-1-14 17:04:35
坛子里有现成的winsorize宏
至于怎么用,总要先下点儿工夫学
二维码

扫码加我 拉你入群

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

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

2013-1-14 17:12:26
playmore 发表于 2013-1-14 17:04
坛子里有现成的winsorize宏
至于怎么用,总要先下点儿工夫学
我自己再琢磨琢磨。我现在的水平是看不懂宏的。
二维码

扫码加我 拉你入群

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

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

2013-1-14 19:46:35
lemonxinran 发表于 2013-1-14 17:12
我自己再琢磨琢磨。我现在的水平是看不懂宏的。
SAS的宏基本就是原样替换
花点儿时间就能弄明白
然后再有具体的问题再上来问针对性强些
二维码

扫码加我 拉你入群

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

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

2014-11-24 21:56:26
一般在末尾,我们加上drop i,因为这个i其实没啥用。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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