SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 639|回复: 2
打印 上一主题 下一主题

帮忙看一下问题在哪?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2012-3-7 05:17:16 | 只看该作者

帮忙看一下问题在哪?

data a;
input abc_dr_d1 xyz_cd_mn_d2;
cards;
12 4
. 7
29 15
-2 .
;
run;
%macro a(var=,dout=);
%let v1=abc_dr_dd;
/*%let v2=xyz_cd_mn_d;*/
proc sql;
create table &dout. as
  select *,(case when &var.>0 then '>0' when &var.=0 then '=0'
                 when &var.=. then 'missing' else '<0' end) as  catx('_',scan(&v1.,1),scan(&v1.,3))
        from a;
quit;
%mend;
%a(var=abc_dr_d1, dout=d1)
在这个code中,catx('_',scan(&v1.,1),scan(&v1.,3)) (取一头一尾2个字符串:abc_d1)总有问题,但不知道怎么改?

请指点一下,谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2012-3-7 07:29:11 | 只看该作者

Re: 帮忙看一下问题在哪?

...as %SYSFUNC(catx(_,%scan(&v1.,1, _),%scan(&v1.,3, _)))
jingju
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2012-3-7 23:34:14 | 只看该作者

Re: 帮忙看一下问题在哪?

wow, nice, thanks a lot.
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-6 18:14 , Processed in 0.068134 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表