楼主: chaoenwang
1578 4

sas宏命令求助,有奖励 [推广有奖]

  • 3关注
  • 12粉丝

已卖:462份资源

学科带头人

97%

还不是VIP/贵宾

-

威望
1
论坛币
6921 个
通用积分
11.1625
学术水平
40 点
热心指数
64 点
信用等级
36 点
经验
2762 点
帖子
851
精华
0
在线时间
4182 小时
注册时间
2010-10-6
最后登录
2025-12-5

楼主
chaoenwang 发表于 2015-11-19 10:36:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
%macro winsor(dsetin=b2,dsetout=win1,byvar=none,vars=lncost lnsales aint emp growth usgrowth,type=winsor,pctl=1 99);
    %if &dsetout= %then %let dsetout=&dsetin;
    %let varL=;
    %let varH=;
    %let xn=1;
    %do %until ( %scan(&vars,&xn)= );
    %let token = %scan(&vars,&xn);
    %let varL = &varL &token.L;
    %let varH = &varH &token.H;
    %let xn = %EVAL(&xn + 1);
    %end;
    %let xn= %eval(&xn-1);
    data xtemp;set &dsetin;run;
    %if &byvar=none %then %do;
    data xtemp;set xtemp;xbyvar=1;run;
    %let byvar = xbyvar;
    %end;
    proc sort data=xtemp;by &byvar;run;
    proc univariate data=xtemp noprint;by &byvar;
         var &vars;output out=xtemp_pctl PCTLPTS= &pctl PCTLPRE= &vars PCTLNAME= L H;run;
    data &dsetout;merge xtemp xtemp_pctl;by &byvar;
         array trimvars{&xn} &vars;
         array trimvarl{&xn} &varL;
         array trimvarh{&xn} &varH;
         do xi = 1 to dim(trimvars);
         %if &type = winsor %then %do;
         if not missing(trimvars{xi}) then do;
         if (trimvars{xi} < trimvarl{xi}) then trimvars{xi} = trimvarl{xi};
         if (trimvars{xi} > trimvarh{xi}) then trimvars{xi} = trimvarh{xi};
    end;
    %end;
    %else %do;
         if not missing(trimvars{xi}) then do;
         if (trimvars{xi} < trimvarl{xi}) then delete;
         if (trimvars{xi} > trimvarh{xi}) then delete;
    end;
    %end;
    end;
    drop &varL &varH xbyvar xi;
    run;
%mend winsor;
二维码

扫码加我 拉你入群

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

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

关键词:SAS宏 宏命令 Univariate missing Variate 宏命令

回帖推荐

孤单的我们 发表于2楼  查看完整内容

问题是什么?

沙发
孤单的我们 发表于 2015-11-19 12:57:51
问题是什么?

藤椅
chaoenwang 发表于 2015-11-19 14:56:32
孤单的我们 发表于 2015-11-19 12:57
问题是什么?
问题是这段宏命令为什么运行不出来,哪里出了bug吗?

板凳
孤单的我们 发表于 2015-11-19 15:23:45
chaoenwang 发表于 2015-11-19 14:56
问题是这段宏命令为什么运行不出来,哪里出了bug吗?
能否提供下b2数据集?方便调试
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
chaoenwang + 5 + 1 + 1 + 1 精彩帖子

总评分: 论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

报纸
chaoenwang 发表于 2015-11-19 16:12:24
孤单的我们 发表于 2015-11-19 15:23
能否提供下b2数据集?方便调试
数据集在里面,谢谢拉

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

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