在SAS中如何获得这个%宏来评估我想要的方式?

时间:2015-05-07 13:08:08

标签: sas sas-macro

问候SAS专家,

我有很多不同的陈述,结构如下:

if item = '0123' then e123 = data1; if item = '0541' then r541 = data2;

变量项包含数字的字符值。

我有很多像上面那样的行,我想在数据步骤中编写一个宏,允许我做这样的事情

%macro ifcondition(newitem);
if item = '&newitem' then E&newitem = data1; 
if item = '&newitem' then R&newitem = data2;
%mend;

%ifcondition(0123);

所以我想要这个的众多变种......

%ifcondition(0123);

评估这个:

if item = '0123' then E0123 = data1; if item = '0123' then R0123 = data2;

我可以修改此内容的最简单方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

只需使用双引号,这对我有用:

data want;
input item $ try $ try2 $;
datalines;
0100 abcd aa
0101 pipp bb
0102 plut cc
2000 gian dd
2001 luca ee
2002 tryu ff
3007 troy gg
3156 boss hh
;

%macro ifcondition(newitem);
if item = "&newitem" then E&newitem. = try; 
if item = "&newitem" then R&newitem. = try2;
%mend;

data want1;
set want;
%ifcondition(0101);
%ifcondition(3007);
run;