全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1305 2
2014-11-19
在winsorize的时候,经常反复用到同一个数字,比如下例中的10,请问能否使用macro等,在前面加一个公共变量?

如果我要添加变量,或者减少变量,就不需要手工把每一个数字都变成“10”。

/*winsorize*/
data b1;set a1; d=1;run;
proc means noprint;
  var x1-x10 ;by d;
output out=b2(drop=_freq_  _type_) p10=x1-x10 p90=b1-b10;
data f1;
  merge b2 b1; by d;
  array z{1:10} x1-x10;

  array x{1:10} a1-a10;
  array b{1:10} b1-b10;
  do i=1 to 10;
   if z[i]<a[i] and z[i]~=. then z[i]=a[i] /*delete*/;
   if z[i]>b[i] then z[i]=b[i]/*delete*/;
   end;drop i d a1-a10 b1-b10;
run;

二维码

扫码加我 拉你入群

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

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

全部回复
2014-11-19 19:36:39
%let k=10;
二维码

扫码加我 拉你入群

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

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

2014-11-20 14:49:42
mingfeng07 发表于 2014-11-19 19:36
%let k=10;
感谢mingfeng老师!真赞
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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