2015-05-30 2 views
-1

Скажем, у меня есть этот код:Как сослаться я в течение цикла SAS

data Work.dataset; 
do i = 3 to 7; 
    %let mname = text; 
    %let mname = &mname.i; 
end; 
run; 

Я хочу i в %let mname = &mname.i; для обозначения i = 3 to 7 и не к букве i. Как я могу это сделать?

Реальный вопрос, который я пытаюсь найти, можно найти здесь: Loop over strings and read in files and save, и я пытаюсь выяснить способ сделать это. Этот вопрос пытался решить часть этого более масштабного вопроса.

+1

Что вы хотите сделать? Можете ли вы добавить немного больше контекста, ваш код не имеет большого смысла? – NEOmen

+2

На ваш вопрос уже дан ответ. – NEOmen

ответ

0

Вы не можете использовать %let в шагах данных, используйте symput.

Это работает лучше. Надеюсь, это то, что вы хотели.

data Work.dataset; 

    do i = 3 to 7; 
     mname1 = 'text'; 
     mname2 = mname1||put(i,1.); 
     call symput('mname3',mname2); 
     put mname2; 
     output; 
    end; 
run; 

%put mname3=&mname3; 
Смежные вопросы