楼主: 岩溪
2358 5

菜鸟求助一个剔除极端值的SAS语句 [推广有奖]

  • 1关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
46 点
帖子
4
精华
0
在线时间
2 小时
注册时间
2013-3-11
最后登录
2016-4-13

楼主
岩溪 发表于 2013-3-11 18:14:01 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
没有专门去学。。只是目前做数据需要这个程序,怎么剔除掉前百分之一和后百分之一的数据,这个程序该怎么写呢?求助各位了!
二维码

扫码加我 拉你入群

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

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

关键词:极端值 程序

沙发
子鹿 发表于 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;
不知道是否适用

藤椅
lllyyy! 发表于 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=排出后百分之一后的最后一个观测

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

报纸
playmore 发表于 2013-3-12 08:37:48
在版上或网上搜winsorize的宏,有现成的
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

地板
webgu 发表于 2013-3-12 17:28:26
playmore 发表于 2013-3-12 08:37
在版上或网上搜winsorize的宏,有现成的
嗯,这个问题好像讨论过。记得有人给过ROBUST回归的方案,确实不错。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 10:45