全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2307 5
2013-03-11
没有专门去学。。只是目前做数据需要这个程序,怎么剔除掉前百分之一和后百分之一的数据,这个程序该怎么写呢?求助各位了!
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-11 18:38:08
假设a数据集有100个obs,
data b;
do p=1 to 100;
output;
end;
data c;
merge a b;
if 2=p<=99 then output;
run;
不知道是否适用
二维码

扫码加我 拉你入群

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

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

2013-3-11 18:48:22
data test;
        do i=1 to 1000;
        a=int(rannor(123)*10);
        output;
        end;
run;
proc sort data=test;
        by a;
run;
data want;
        set test(firstobs=11 obs=990);
run;
排序,然后firstobs=排出前百分之一后的第一个观测 obs=排出后百分之一后的最后一个观测
二维码

扫码加我 拉你入群

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

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

2013-3-11 22:50:20
data test;
        do N=1 to 1234;
        a=rannor(123)*1000;
        b=ranuni(111)*1000;
        output;
        end;
run;
proc sql noprint;
    select count(*) into : Num_obs
        from test;
quit;
%put number of observation in data set test is:  &num_obs;
proc sort data=test; /* do this if you want top and bottom removed */
     by a;
run;

data test2;
    set test;
    if _N_/&num_obs > 0.01 and _N_/&num_obs < 0.99 then output;
*   if _N_/&num_obs >= 0.01 and _N_/&num_obs <= 0.99 then output;
run;
二维码

扫码加我 拉你入群

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

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

2013-3-12 08:37:48
在版上或网上搜winsorize的宏,有现成的
二维码

扫码加我 拉你入群

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

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

2013-3-12 17:28:26
playmore 发表于 2013-3-12 08:37
在版上或网上搜winsorize的宏,有现成的
嗯,这个问题好像讨论过。记得有人给过ROBUST回归的方案,确实不错。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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