Im используя следующий цикл для генерации сумм некоторых столбцов с использованием класса:Изменения макропеременной в цикле DO
%macro do_mean;
%do i = 50 %to 100;
%let string1 = %eval(100-&i);
**%if string1 = 5 %then %let string1 = "05";**
%if &i = 95 or &i = 90 or &i = 80 or &i = 70 or &i = 60 or &i = 50 %then %do;
proc means data = risiko.risiko_Haus sum nway noprint;
var HA_Max_Neg HA_Max_Pers;
class C_ze_Risiko_&i._2014_&string1._2015;
output out=test_ze_Risiko_&i._2014_&string1._2015 (drop=_type_ _freq_)
sum=C_Risiko_&i._2014_05_2015_Max_Neg C_Risiko_&string1._2014_05_2015_Max_Per;
run;
%end;
%end;
%mend do_mean;
%do_mean;here
The имена столбцов я хочу использовать в качестве класса «C_ze_Risiko_50_2014_50_2015» «C_ze_Risiko_60_2014_40_2015» и так далее.
К сожалению, код выдает "C_ZE_RISIKO_95_2014_5_2015", но мне нужно "C_ZE_RISIKO_95_2014_ _2015" вместо этого. Я отметил строку, где я пытался изменить это. К сожалению, это не работает. Может кто-нибудь сказать мне, почему и предложить решение?
Заранее спасибо.
Затем макрос назначает переменную «C_ZE_RISIKO_95_2014 _ ** G1 ** _ 2015» !? – burton030
Синтаксис был некорректным (% string1 вместо & string1), я отредактировал правильный синтаксис. –