Зацикливание имен в SAS-IML?
Как я могу прочитать набор данных SAS с именем, заданным как stem + суффикс в IML? Стебель задан как макропеременная SAS, достаточное количество, которое я намереваюсь использовать, находится в строковом векторе в IML.
В R я бы использовал
suffix<-c('s1','s2')
for (s in suffix){
data<-eval(as.name(paste(stem,s,sep='')))
}
Я мог бы сделать цикл, если бы у меня был код для первого набора данных. Я пытался:
proc iml;
suffices = {'s1','s2'};
call symput('suffix',suffices[1]);
use &stem.&suffix.;
Проблема в том, что если в цикле do (и мне нужно это, когда я перебираю имена), call symput на самом деле не работает.Вот я нашел symget, но в контексте использования & stem.symget ('суффикс') не был плодотворным.
Есть другие идеи?
Изменить: я нашел следующее довольно не элегантное решение:
proc iml;
%global suff;
suffix={'s1','s2','s3'};
%do ii = 1 %to 3;
call symput('suff',suffix[&ii.]);
<do stuff based on the suffix>
%end;
Тем не менее, я не чувствую, что так надо работать.