Извлечение значений из макро-переменной SAS
Я определил макропеременную
%let data_names = fuzzy_Data_segment EMWS2.Clus_TRAIN;
Затем я написал макрос для извлечения и печати значений из вышеуказанной макропеременной как:
%macro calling_data;
%do i = 1 %to 2;
%let data_name&i = %qscan(&data_names,&i);
%put &&data_name&i;
%end;
%mend;
%calling_data;
Мой код макроса может печатать имя (fuzzy_Data_segment), но он печатает только часть имени (EMWS2). что я должен сделать, чтобы напечатать все второе имя
1 ответ
Ваша проблема в том, что SAS считает точку одним из разделителей по умолчанию в макропеременных. В этом случае похоже, что вы хотите использовать пробел для разделения элементов в data_names, поэтому укажите, что:
%let data_name&i= %qscan(&data_names,&i., %str( ));
Вам также не хватает точек с запятой в вашем %let
заявление и в вашем звонке calling_data
,