楼主: hlfjacky
1374 2

请教:这段macro的错误在哪里 [推广有奖]

  • 2关注
  • 0粉丝

已卖:4份资源

大专生

83%

还不是VIP/贵宾

-

威望
0
论坛币
861 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
660 点
帖子
80
精华
0
在线时间
25 小时
注册时间
2013-1-13
最后登录
2020-4-21

楼主
hlfjacky 发表于 2014-3-9 02:58:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我运行了下面这段macro,没有生成任何文件,请教一下,是哪个环节出错了?用的数据v23在附件里。非常感谢提点!

另:怎么定义第一部分里的varlist=, 使其能够实现下面两种情况:(1)比如我有100个var,不需要逐一列出就可引用全部的var ; (2) 我只想引用其中的98个,剩下的两个var2和var99我希望剔除出去。
关于var的引用,我了解这两种方式:var _all_; 或者mean=mean(of _all_);

*1;
%macro median(mydata =work.v23, varlist=read write math science socst, medname = median);
*2;
data _null_;
      if 0 then set &mydata nobs = nobs;
     call symput('nobs', nobs);
run;
*3;
proc transpose data = &mydata out = aaa;
      var &varlist;
run;
*4;
proc univariate data = aaa noprint;
     var col1 - col&nobs;
     output out = bbb  median = col1 - col&nobs;
run;
*5;
proc transpose data = bbb  out = ccc;
var _all_;
run;
*6;
data v25;
     merge &mydata ccc(keep = col1  rename = (col1 = &medname));
run;
%mend median;


v23.rar (760 Bytes) 本附件包括:
  • v23.sas7bdat


二维码

扫码加我 拉你入群

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

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

关键词:Macro acr CRO Mac Univariate science median write null

沙发
Eternal0601 发表于 2014-3-9 10:22:41
在&nobs放在%left里面就可以了,否则解析出来的&nobs有leading blanks
proc univariate data = aaa noprint;
/*     var col1 - col&nobs; */
     var col1 - col%left(&nobs);
/*     output out = bbb  median = col1 - col%left(&nobs);*/
     output out = bbb  median = col1 - col%left(&nobs);
run;

藤椅
hlfjacky 发表于 2014-3-9 23:43:05
多谢教授提点!问题解决了,你给的修改起作用!

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

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